<arch.design/>
← Lessons/

Message Queues & Kafka

1 / 10

The problem: your services are holding hands

Synchronous call — checkout waits on emaillatency ~20ms
Checkout
POST /order → email
waiting…
Email
SMTP relay
200 in 20ms
healthy — checkout calls email synchronously and waits for the reply

Checkout calls the email service directly and synchronously. That one design decision couples their fates:

  • Email is slow → checkout is slow — your revenue path waits on a marketing email
  • Email is down → checkout is down — a non-critical service kills a critical one
  • Traffic spikes hit every service at once — no buffer anywhere, everything falls together

Direct synchronous calls couple services' fates — if the downstream is slow or down, you are too.

← → navigate · S recap · L hands-on lab