The company is one of the primary players in advertising on the Internet. In order to target ads in the most effective way possible, it is necessary for the company to track all views of all ads by everyone on the Internet and to the extent possible, to have an understanding of which web sites everyone has visited. Naturally, as an advertiser, you would want to focus pet food ads on someone with a history of visiting animal-related sites, and kitchen equipment ads on someone known to research recipes or kitchen design. However, you would not want to inundate someone with too many of the same kinds of ads or they lose their effectiveness. Nor would you want a competitor’s ads to be running alongside yours. Finally, and this is what matters to revenue, tabulating which ads are shown to which people drives the billing system for advertisers. All this needs to be done in near-real-time because the faster you can react to changes in user behavior, the more effective the ads can be.
Calculating this usage information may not seem especially challenging, until you consider the scale. We’re talking about many billions of events each day, and all that information about each Internet user must somehow be maintained. To collect the data, each user is tagged with a unique identifier (the infamous “cookies”), which is read every time the user visits a web page that carries an advertisement. The system keeps track of those visits, tracking the specific web sites and also which ads have been served up to the person’s screen. Each ad is classified in a number of ways, and so a total user experience is calculated. The goal is to deliver the right ads to the right people at the right time.
At the time of the first Internet explosion (circa 2000), online advertising was taking off. The company’s original system had been built at the dawn of the modern Internet era and was already remarkably scalable. Unfortunately, it had a hard limit – it would not handle more than 2 billion ads a day. The system had been designed to run across a limited number of servers, and making it bigger would require a complete rewrite. Faced with rapidly expanding Internet volumes, the company realized that hand coding would simply be too time consuming – they had no choice but to consider alternatives.
There was but one alternative: Ab Initio. The Ab Initio Co>Operating System is totally scalable, and it enables complex calculations to be expressed in a graphical manner that is much easier than hand coding. In a matter of just 2 months, Ab Initio demonstrated a system that could not only do everything the existing hand-coded system could do but could handle even more complex logic. (And the hand-coded system was the culmination of 2 years of development by lots of smart people.) Moreover, from the start, the Ab Initio application was completely scalable with no upper bound. The clock was ticking, so the customer went into high gear to deploy the solution before their existing platform hit the wall. The new application went online just as they were about to reach the limits of the old system.
That was over ten years ago. Today’s volume is tens of billions of events per day and is still rapidly climbing. Over these ten years, this customer has been through three different hardware platforms. The one constant has been Ab Initio. The same application, with only minor changes to meet new business requirements, is still in production today. The same Ab Initio Co>Operating System has enabled this application to scale by a factor of 20 without change and to span several generations of computer hardware.
When something is done right, it withstands the test of time.