AdDaptive Intelligence is a B2B advertising agency that combines offline business data with proprietary targeting to help their clients reach the ideal audiences. Setfive and AdDaptive have been long term partners through one re-brand and several changes in their business.

As AdDaptive's business matured, they recognized that a key differentiator would be making proprietary data available to target within the online advertising exchanges. In order to do this they had to build a data provider bidder, and they turned to us for help.

  • Because a data provider bidder is involved in the ad auction, the bidders have very low latency requirements. Data providers must respond to requests fast enough in order for the overall bid stream to incorporate the data that the bidder is providing. On top of that, AdDaptive needed to provide data to a high enough percentage of the overall auctions in order for the targeting to be effective.
  • We were looking for a solution that was going to require a minimal amount of engineering time to start using, have a framework that was easy to update, and an architecture that required minimal maintenance.
  • AdDaptive's core compute and storage infrastructure is hosted at Amazon Web Services (AWS). Because of that we needed to support ingesting and analyzing data at AWS, shipping targeting to the data provider bidder, and making it available to target.

After taking a holistic view of the problem we realized that we were really looking for two things: a high performance distributed database and a high performance HTTP layer. The approach we took was to quickly set up several prototypes using a mix of databases and HTTP frameworks, which we evaluated for performance, ease of development, and expected maintenance.

Following the evaluation period we settled on using Aerospike with Netty handling the HTTP requests.

  • Our benchmarks indicated that Aerospike with Netty would perform well. Once we took the solution live, we were impressed by how much traffic we could handle at low latencies with a handful of commodity servers.
  • Selecting Netty allowed us to develop the HTTP layer in Java - a language most of the Setfive team is well-versed in. This allowed us to bring the solution online quickly and avoid having only a few engineers with the skills to make changes moving forward.
  • Due to its data model and data loading process Aerospike made it easy to move data from AWS into the data center where the data provider bidder was hosted and consume the data there.

This was one of the more technically challenging projects we've worked on. There was a bit of trial and error, but we ultimately delivered a solution that checked all the boxes and continues to deliver for the AdDaptive team.