Komunikasi sinkron memblokir pemanggil hingga respons tiba; komunikasi asinkron mengirim pesan dan melanjutkan tanpa menunggu. Masing-masing membuat trade-off yang berbeda dalam coupling, latensi, dan ketahanan.
Komunikasi sinkron memblokir pemanggil hingga respons tiba; komunikasi asinkron mengirim pesan dan melanjutkan tanpa menunggu. Masing-masing membuat trade-off yang berbeda dalam coupling, latensi, dan ketahanan.
| Aspek | Sinkron (REST/gRPC) | Asinkron (messaging) |
|---|
| Apakah pemanggil menunggu? | Ya | Tidak |
| Coupling temporal | Ketat | Longgar |
| Ketahanan terhadap outage | Rendah | Tinggi (broker buffer) |
| Konsistensi | Segera | Eventual |
| Kompleksitas | Lebih rendah | Lebih tinggi |
| Debuggability | Lebih mudah (linear) | Lebih sulit (flows) |
SYNC: Caller ──request──▶ Service
Caller ◀─response── Service (blocked the whole time)
ASYNC: Caller ──message──▶ [ Queue ] ──▶ Service
Caller continues immediately; Service handles it later
Asinkron menyembunyikan kegagalan — pesan yang hilang atau poisoned dapat secara diam-diam merusak workflow. Anda memerlukan dead-letter queue dan monitoring.
Pilihan langsung mengendalikan bagaimana kegagalan merambat: panggilan sinkron gagal dengan cepat dan terlihat, pesan asinkron menguraikan tetapi menunda masalah ke konsumen.
Menggabungkannya dengan baik — sinkron di tepi, asinkron untuk workflow — adalah keterampilan inti dalam membangun microservices yang resilient.