Decision tree
Sync, async, or event-driven.
The fundamental fork in service-to-service communication is whether the caller needs the callee's response synchronously. Get this wrong and you'll over-engineer with queues, or build hidden coupling chains. This tree walks sync-vs-async, REST-vs-gRPC, and queue-vs-stream.
If JavaScript is disabled — the questions in this tree
- Does the caller need an answer to complete its own work?
- Is the call cross-organisation, cross-team, or cross-platform?
- Do you need ordering, replay, or many independent consumers?
Re-enable JavaScript to step through interactively. Or jump straight to the related artefacts: diagnostics · reference architectures · writing.