Lessons in Building a System that Processes More than 70 Billion Events Daily
summary
Company processes 70B events/day through an event-driven Kafka pipeline that validates HTTP SDK messages on web tier, transforms them in small Clojure microservices, and persists streams to S3 as parquet for batch analysis while feeding ClickHouse for real-time queries and Aerospike as the in‑memory key/value lookup for attribution. Migration from Python to Clojure solved concurrency limits but created serialization headaches—pickle to JSON then shimmed—leaving a persistent JSON vs Protobuf schema tension that complicates column selection, backward compatibility, and team coordination. Deploys in Docker on AWS with spot instances and mesos/k8s staging.
AI-written summary · about
chapters (9)
- 0:00Start
- 12:41Toku Database
- 22:09Python Pickled Messages
- 24:09Architecture
- 27:22Json Deserialization
- 35:24Micro Services Architecture
- 36:10Mono Repo with Multiple Sub Modules
- 53:11How Do We Test Things
- 56:04Reason That We'Re Using Spark
related talks
38mHow to handle 100k events per second
34mChasing the Stream Processing Utopia
47mSpeeding Event Processing to 1.6M/sec: Badoo’s Experience
50mMoving from legacy to event-driven with Kafka
32mBuilding a Real-time Ingestion Platform using Kafka and Aerospike
48mHyper Speed! When Big Data Blooms
20mLessons learned scaling our SaaS on Postgres to 8+ billion events
33mLightning talks
