Event-driven vs. synchronous integration: when Kafka is worth it
Innorise Engineering · 22-03-2026 · 7 min read
The default: synchronous REST
Most systems start with REST. Service A calls Service B, waits for the response, and moves on. It's simple, debuggable, and works, until latency adds up, or B goes down and A cascades.
When to go event-driven
| Signal | Action | |--------|--------| | P99 latency > 500ms on a critical path | Extract to async | | One service outage cascades to three others | Decouple with events | | Write throughput needs horizontal scale | Kafka + consumer groups | | Audit trail is a compliance requirement | Event sourcing |
The cost of async
You gain resilience and throughput. You lose:
- Immediate consistency (eventual only)
- Simpler debugging (distributed traces required)
- Transactional guarantees (saga patterns instead)
Our rule of thumb
Start synchronous. When a request hits 200ms P99 and the caller doesn't need the result to proceed, extract the side effect to an event. Keep the critical path synchronous.
Have a system like this to build?
We architect and ship platforms where correctness and automation matter.
Start a project