I return a bid on said request (I must respond in 85 to 100 milliseconds)

Later, I receive a notification on whether or not I won the auction

Point number 3 above means I don't find out if I've won a request until shortly after I've made the request.

Currently, on a server farm of about 36 boxes, we're receiving roughly 400 bid requests a second, or about 11 requests/second per box. This is an extremely light load and will likely increase by one or two orders of magnitude when the system goes live.

We have various campaigns, each with individual daily and total budgets that cannot be overspent (a bit of wiggle room is allowed). The servers run separate databases and the only shared data source we have is a Redis server with two slaves, though we could implement others.

This is for a limited and unknown amount of time, but you should be able to read my book online for free. Read on for a bit of explanation about what's going on and for some important caveats (and the URL).

About Ovid

Have Perl; Will Travel. Freelance Perl/Testing/Agile consultant.
Photo by http://www.circle23.com/. Warning: that site is not safe for work. The photographer is a good friend of mine, though, and it's appropriate to credit his work.