THE PROBLEM
Why this pattern exists
Teams frequently use synchronous APIs for loosely coupled broadcasts, events for commands, or batch for workloads that require transactional feedback.
DESIGN GUIDANCE
Principles to preserve
- Need a response now? Prefer a synchronous API or request/reply contract.
- Publishing a completed fact to many consumers? Prefer a domain event with durable delivery.
- Moving large datasets on a tolerance window? Consider batch or CDC.
- All patterns need identity, schema versioning, retries, dead-letter handling where relevant, observability and ownership.
- Model hybrid flows explicitly: command via API, event after commit, analytics via CDC.
THE REAL DESIGN WORK
Trade-offs, not just boxes
- Synchronous calls offer immediate feedback but introduce temporal coupling.
- Events support decoupling but demand idempotency and eventual-consistency design.
- Batch is efficient for volume but trades freshness and granular failure handling.
REVIEW QUESTIONS
Before you implement
- Is this a command, query, notification or bulk movement?
- Which party owns successful completion?
- What ordering, duplication and consistency guarantees are needed?
- What happens when the receiver is down for six hours?