3x orders
BYJU'S, monolith to events
Order and student domains on Kafka, plus $110K a month cut from AWS.
- Organisation
- BYJU'S
- When
- 2020 - 2023
- Areas
- Event-driven architecture, Kafka, AWS ECS
Problem
The order and student domains lived in one monolith.
TODO(shubham): What hurt: incidents, scaling limits, release speed.
Constraints
- The student service had to be low-latency and highly available for 2M+ active users.
- A team of 4 engineers, which I led and mentored.
TODO(shubham): Other constraints: migration without downtime, deadlines.
What I built
I split the monolith into order and student microservices that talk through Kafka, running on AWS ECS.
- Monolith
- Kafka events
- Order service
- Student service
TODO(shubham): How the migration was sequenced, and the event design.
Outcome
- 3x concurrent orders.
- 40% better performance and 60% less processing time.
- $110K+ a month saved on AWS.
- 70% fewer production incidents, with APM monitoring and alerting on Datadog, Prometheus and Kibana.
- 50% fewer production errors through TDD.
What I'd do differently
TODO(shubham): What you'd change with hindsight.