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.

3 questions max5 end-states~3-5 minShareable via URL hash

If JavaScript is disabled — the questions in this tree

  1. Does the caller need an answer to complete its own work?
  2. Is the call cross-organisation, cross-team, or cross-platform?
  3. 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.

Also on this site