Synkroninen viestintä estää kutsujaa, kunnes vastaus saapuu; asynkroninen viestintä lähettää viestin ja jatkaa odottamatta. Kumpikin tekee erilaisia kompromisseja kytkennän, viiveettä ja sietokykyisyyden suhteen.
Synkroninen viestintä estää kutsujaa, kunnes vastaus saapuu; asynkroninen viestintä lähettää viestin ja jatkaa odottamatta. Kumpikin tekee erilaisia kompromisseja kytkennän, viiveettä ja sietokykyisyyden suhteen.
| Aspekti | Synkroninen (REST/gRPC) | Asynkroninen (messaging) |
|---|
| Odottaako kutsuva? | Kyllä | Ei |
| Ajallinen kytkentä | Tiukka | Löysä |
| Sietokykyisyys toimintahäiriöille | Matala | Korkea (välittäjä puskuroi) |
| Johdonmukaisuus | Välitön | Lopullinen |
| Monimutkaisuus | Pienempi | Suurempi |
| Debuggattavuus | Helpompi (lineaarinen) | Vaikeampi (virrat) |
SYNC: Caller ──request──▶ Service
Caller ◀─response── Service (blocked the whole time)
ASYNC: Caller ──message──▶ [ Queue ] ──▶ Service
Caller continues immediately; Service handles it later
Async piilottaa virheet — kadonnut tai myrkyllinen viesti voi vioittaa työnkulun äänettömästi. Tarvitset dead-letter-jonot ja valvontaa.
Valinta hallitsee suoraan, miten virheet leviävät: synkronist puhelut epäonnistuvat nopeasti ja näkyvästi, asynkronist viestit irroittavat, mutta lykäävät ongelmat kuluttajille.
Niiden hyvä sekoittaminen — sync reunassa, async työkuluille — on ydinkyky kestävien mikrapalveluiden rakentamisessa.
Kirjasto IT-haastattelukysymyksiä yksityiskohtaisine vastauksineen — Juniorista Senioriin.
Lahjoita