Message Broker, untuk apa sih?
A message broker is software that enables applications, systems, and services to communicate with each other and exchange information.
โ IBM
Seperti namanya, message broker berfungsi sebagai perantara pesan (dalam hal ini adalah data/payload).
Payload yang digunakan biasanya berbentuk string dan JSON, tergantung message broker yang digunakan.
Sebelum masuk ke studi kasus, mari kita lihat terlebih dahulu bagaimana arsitektur aplikasi bekerja dengan message broker.
Berdasarkan VMware, berikut ini adalah desain arsitektur sistem low-level jika menggunakan message broker:

Low-level system architecture design when using a message broker
Kalau kita analogikan seperti kedai kopi:
- Kasir adalah publisher yang menerima orderan
- Penjaga antrian pesanan adalah message broker
- Barista adalah consumer yang membuat pesanan sesuai dengan antrian
Selanjutnya, penerapan Message Broker:
1. Menghindari Transaksi Gagal
Kadang, aplikasi/service yang bertanggung jawab dalam memproses transaksi mengalami gangguan sehingga menyebabkan transaksi gagal.
Dengan implementasi message broker setelah request masuk ke API Gateway (publisher), maka payload akan dikirim ke message broker dan dilanjutkan ke service transaksi (consumer).
Data di message broker akan tersimpan berdasarkan konfigurasi retensi masing-masing broker.
Sehingga meskipun consumer sedang down, data transaksi tidak hilang dan akan diproses setelah consumer kembali up.
2. Menyiarkan Data (Broadcasting)
Ini seperti kita subscribe channel YouTube ABC123.
Ketika ada aktivitas terbaru dari channel tersebut, maka semua yang subscribe akan menerima notifikasi.

Message Broker Event Pattern
Producer akan publish data ke broker, dan semua consumer yang subscribe ke broker tersebut akan menerima data yang telah dipublish.
Pada kasus ini, saat service mengalami perubahan data, cukup publish data tersebut ke broker, dan service lain yang subscribe akan menerima dan mengupdate penyimpanan masing-masing.
3. Implementasi Event Driven Architecture
Event-driven architecture uses events to trigger and communicate between decoupled services and is common in modern applications built with microservices. An event is a change in state, or an update, like an item being placed in a shopping cart on an e-commerce website.
Contoh sederhana dari alur event-driven architecture saat proses transfer mobile banking:

Event-Driven Architecture Flow for Mobile Banking
Setelah API Gateway menerima request dari user, seluruh proses komunikasi dilakukan secara asynchronous melalui message broker dari Transfer Service sampai Notification Service.
Karena proses asynchronous, kadang setelah melakukan transfer, saldo kita belum langsung berkurang dan status transaksi masih pending.
Oke segitu aja dulu dari saya tentang message broker. Semoga bermanfaat. Terima kasih!