Case study

Booking.com moved pricing and inventory data from batch to sub-second

MySQL batch pipelines could not keep pricing, inventory and recommendations current at billions of events a day.

Booking.com

Booking.com · Operations

10xmore data pipeline throughput

The workflow before

Booking.com's operational data lived in MySQL and moved downstream in batch jobs. Write throughput was the ceiling, so pricing and availability data reached analytics and downstream systems late. Scaling meant buying more hardware, and engineers spent a large share of their week keeping the pipelines running instead of shipping features.

What we built

We built a change data capture pipeline that reads every MySQL change with Debezium and streams it through Kafka into Booking.com's Big Data Exchange (BDX) and Snowflake. Price and availability changes now propagate in under a second instead of waiting for the next batch.

Airflow orchestrates the pipelines and Spark handles the large batch analytics, all running on Kubernetes (Amazon EKS) with autoscaling tied to data volume. The system absorbs 3x traffic spikes without anyone stepping in.

We ran a 40 week engagement with a team of 8, load tested at 2x projected peak, and rolled out in phases with traffic shifting so the old and new paths ran side by side until the numbers matched.

Before and after

MeasureBeforeAfter
Price and availability propagationNext batch runUnder 1 second
Pipeline throughputCapped by MySQL writes10x higher
Engineer time on pipeline upkeepBaseline70% less
Infrastructure cost for the pipelinesBaseline30% lower

What's next

The streaming layer gives Booking.com clean, current event data in one place. That is the foundation for L2 work: models and copilots that answer questions on live pricing and inventory instead of yesterday's extract.

ShareLinkedInEmail

Ingestion: Debezium reads the MySQL binary log and publishes inserts, updates and deletes to partitioned Kafka topics, with schema changes handled automatically. AWS Lambda, Amazon SQS and EventBridge handle lightweight processing and event routing.

Processing and storage: Airflow DAGs schedule and monitor the flows; Spark jobs on EKS run batch analytics. Data lands in BDX (Booking.com's internal data exchange), Snowflake for analytics and DynamoDB for low latency lookups.

Operations: infrastructure is defined in Terraform, deployed through CI/CD, and monitored with Prometheus and Grafana with sub-minute alerting. Disaster recovery procedures were tested before cutover.

Next step

Let's build the case study we tell next.