Synchronní komunikace blokuje volajícího, dokud nepřijde odpověď; asynchronní komunikace odešle zprávu a pokračuje bez čekání. Každá z nich vytváří různé kompromisy v oblasti vazby, latence a odolnosti.
Synchronní komunikace blokuje volajícího, dokud nepřijde odpověď; asynchronní komunikace odešle zprávu a pokračuje bez čekání. Každá z nich vytváří různé kompromisy v oblasti vazby, latence a odolnosti.
| Aspekt | Synchronní (REST/gRPC) | Asynchronní (messaging) |
|---|
| Čeká volající? | Ano | Ne |
| Časová vazba | Těsná | Volná |
| Odolnost vůči výpadkům | Nízká | Vysoká (broker ukládá) |
| Konzistence | Okamžitá | Eventualní |
| Složitost | Nižší | Vyšší |
| Ladicí pracovní postup | Jednodušší (lineární) | Obtížnější (toky) |
SYNC: Caller ──request──▶ Service
Caller ◀─response── Service (blocked the whole time)
ASYNC: Caller ──message──▶ [ Queue ] ──▶ Service
Caller continues immediately; Service handles it later
Asynchronní komunikace skrývá chyby — ztracená nebo otrávená zpráva může tiše zlomit pracovní postup. Potřebujete fronty nepoužitelných zpráv a sledování.
Volba přímo řídí, jak se chyby šíří: synchronní volání selhávají rychle a viditelně, asynchronní zprávy oddělují, ale odkládají problémy spotřebitelům.
Dobré míchání obou přístupů — sync na hranici, async pro pracovní postupy — je základní dovedností při vytváření odolných mikroslužeb.