Scale-up

Event-driven microservices

ALB → EKS → Kafka (MSK, 6 partitions, 60 s retention) → consumers → PostgreSQL and OpenSearch.

Event-driven microservices running in the ServerSloth simulator

What this architecture teaches

Event-driven systems put Kafka between services: producers publish and continue, consumers process independently. User-facing latency stays low even when consumers are slow.

Consumer throughput is capped by partitions — six partitions means at most six messages processed at once, however many consumers you run. When producers outpace that, lag grows by produced minus consumed every second.

This topic keeps messages for only 60 seconds. Once the oldest unread message is older than that, it is deleted: lag has turned into data loss.

What to look for

Components

Failure modes you will see