Synchrone communicatie blokkeert de aanroeper totdat een antwoord arriveert; asynchrone communicatie stuurt een bericht en gaat verder zonder te wachten. Elk maakt verschillende afwegingen in koppelingen, latentie en veerkracht.
Synchrone communicatie blokkeert de aanroeper totdat een antwoord arriveert; asynchrone communicatie stuurt een bericht en gaat verder zonder te wachten. Elk maakt verschillende afwegingen in koppelingen, latentie en veerkracht.
| Aspect | Synchrone (REST/gRPC) | Asynchrone (messaging) |
|---|
| Wacht de aanroeper? | Ja | Nee |
| Temporele koppeling | Strak | Los |
| Veerkracht tegen uitval | Laag | Hoog (broker buffered) |
| Consistentie | Onmiddellijk | Uiteindelijk |
| Complexiteit | Lager | Hoger |
| Debugbaarheid | Gemakkelijker (lineair) | Moeilijker (stromen) |
SYNC: Caller ──request──▶ Service
Caller ◀─response── Service (blocked the whole time)
ASYNC: Caller ──message──▶ [ Queue ] ──▶ Service
Caller continues immediately; Service handles it later
Async verbergt fouten — een verloren of giftig bericht kan stilletjes een workflow breken. Je hebt dead-letter queues en monitoring nodig.
De keuze bepaalt rechtstreeks hoe fouten zich voortplanten: sync-aanroepen mislukken snel en zichtbaar, async-berichten ontkoppelen maar schuiven problemen naar consumenten.
Het goed mengen — sync aan de rand, async voor workflows — is een kernvaardigheid bij het bouwen van veerkrachtige microservices.