When to wait for an answer.
WHAT SYNCHRONOUS MEANS
The caller waits for the result.
WHAT IT PROVIDES
An immediate answer Simple reasoning about success
WHAT IT COSTS
The caller is blocked Failure of the other system fails yours Latency accumulates through chains
WHERE IT IS NECESSARY
When the answer is needed to proceed: authorisation, validation, pricing.
WHAT ASYNCHRONOUS MEANS
The work is accepted and performed later.
WHAT IT PROVIDES
The caller not waiting Resilience when the other side is unavailable Absorbing bursts
WHAT IT COSTS
Complexity No immediate result The need to report outcomes separately
WHAT TO RETURN FOR AN ACCEPTED ASYNCHRONOUS REQUEST
An accepted status, with a way to check progress.
WHAT TO PROVIDE
A status endpoint, or a notification when complete.
WHAT TO CHOOSE FOR MOST INTEGRATIONS
Asynchronous, where the answer is not needed immediately.
WHY
It removes a dependency that would otherwise cause outages.
WHAT A QUEUE ADDS
Buffering, retry and ordering.
WHAT TO PLAN FOR
Messages that repeatedly fail.
WHAT TO DO WITH THEM
Move them aside, and surface them.
WHY
One poisonous message otherwise blocks everything behind it.