{"page":"/blog/rtb-bidder-architecture","modified":"2026-11-10","license":"https://creativecommons.org/licenses/by/4.0/","columns":["Component","Job","Published latency figure","Source and date","Design rule"],"rows":[["Exchange deadline (tmax)","Sets the total budget, network included","80 to 1,000 ms at Google; 85% of responses must arrive in time; at most 2% late per location during testing","Google peering guide and test guide, both updated 17 Sep 2026","Design for the shortest deadline you accept, not the average"],["Network to and from the exchange","Carries request and response","\"Single-digit millisecond\" between partners on AWS RTB Fabric (company claim); TripleLift reported 15 to 20% lower latency on it (company claim)","AWS, 23 Oct 2025; PPC Land, 23 Oct 2025","Run bidders near each trading location; Google recommends peering for high volumes"],["Edge and load balancer","TLS, rate limiting, pre-filtering","n/d; RTB Fabric runs Rate Limiter and OpenRTB Filter modules inline (company claim)","PPC Land, 23 Oct 2025","Reject unwanted traffic here, before it costs bidder CPU"],["Bid handler, end to end","Parse, filter, match, price, respond","20 to 30 ms target in a published DSP reference design; 50 to 150 ms with p99 under 200 ms in a vendor guide","Redpanda, 5 Oct 2023; Epom, 11 Sep 2025","Budget internal time as tmax minus network minus a safety margin"],["Campaign index","Find campaigns eligible for this impression","n/d","n/d","In memory in every pod; no network call"],["User profile store","Segments, frequency counts, IDs","All lookups in \"no more than ten or so milliseconds\" (company claim); sub-millisecond server-side in a 20-node benchmark (company benchmark)","Aerospike, 2 Jul 2024; AWS for Industries, 10 Nov 2021","One batched read per request, same region, hard timeout"],["Model or custom bidding logic","Predict value, set price","10 ms strict timeout for a Beeswax bidding agent, HTTP round trip included","FreeWheel docs, accessed 9 Nov 2026","Precompute what you can; fall back to a rule price on timeout"],["Budget and pacing gate","Stop overspend, spread delivery","n/d; Beeswax applies budget and pacing as filters inside its bidder","FreeWheel docs, accessed 9 Nov 2026","Local allowance check only; refresh asynchronously"],["Win, billing and loss notices","Confirm wins, apply spend, learn from losses","Outside the deadline by design","OpenRTB 2.6","Idempotent handlers; never block the bid path"],["Event stream","Durable record of every event","Adform cut reporting delay \"from 4 hours to seconds\" using Aerospike with Kafka (company claim)","Aerospike, 11 Feb 2025","Async producer with a local buffer"],["OLAP and reporting","Aggregates for dashboards and API","Druid: query latencies \"from the sub-second to a few seconds\" (project documentation)","Apache Druid docs, accessed 9 Nov 2026","Pre-aggregate by hour; keep raw events in the lake"]],"sourceUrls":[["https://developers.google.com/authorized-buyers/rtb/peer-guide","https://developers.google.com/authorized-buyers/rtb/test-guide"],["https://aws.amazon.com/about-aws/whats-new/2025/10/aws-rtb-fabric-generally-available","https://ppc.land/aws-launches-dedicated-network-for-real-time-ad-bidding-workloads/"],["https://ppc.land/aws-launches-dedicated-network-for-real-time-ad-bidding-workloads/"],["https://www.redpanda.com/blog/reference-architecture-demand-side-platform-adtech","https://epom.com/blog/dsp/how-to-build-your-own-dsp"],[],["https://aerospike.com/blog/user-profile-store-rtb","https://aws.amazon.com/blogs/industries/running-ad-tech-workloads-on-aws-with-aerospike-at-petabyte-scale"],["https://api-docs.freewheel.tv/advertiser/docs/bidding-agent"],["https://api-docs.freewheel.tv/advertiser/docs/bidding-agent"],["https://github.com/InteractiveAdvertisingBureau/openrtb2.x/blob/main/2.6.md"],["https://aerospike.com/resources/customer-stories/adform/"],["https://druid.apache.org/docs/latest/design/"]]}