Seringkali kita mendengar istilah Event Bus, Message Queue dan Message Broker. Apalagi buat kamu yang bekerja di bidang teknologi 3 hal tadi sudah nggk asing lagi tentunya.
Supaya pemahaman kita makin mendalam berikut perbedaan dan persamaan dari Event Bus, Message Queue dan Message Broker.
Event Bus
- Definisi: Event bus adalah sebuah mekanisme yang memungkinkan komponen-komponen dalam sebuah sistem untuk saling berkomunikasi secara asynchronous melalui peristiwa (event). Ketika suatu event terjadi, semua komponen yang menjadi subscriber pada event tersebut akan menerima notifikasi dan dapat melakukan tindakan yang sesuai.
- Cara Kerja: Komponen mengirimkan event ke event bus, dan event bus akan mendistribusikan event tersebut ke semua subscriber yang tertarik.
- Contoh:
- UI: Ketika tombol "Simpan" ditekan pada sebuah form, sebuah event "simpanData" dikirimkan ke event bus. Semua komponen subscriber event ini, seperti komponen penyimpanan data dan komponen notifikasi, akan menerima event tersebut dan melakukan tugasnya masing-masing.
- Sistem Logging: Ketika terjadi error dalam sebuah aplikasi, sebuah event "errorTerjadi" dikirimkan ke event bus. Komponen logging akan men-subcribe event ini dan mencatat error tersebut ke dalam log file.
Message Queue
- Definisi: Message queue adalah sebuah struktur data yang digunakan untuk menyimpan pesan secara sementara sebelum pesan tersebut diproses. Pesan-pesan ini diproduksi oleh satu atau lebih producer dan dikonsumsi oleh satu atau lebih consumer.
- Cara Kerja: Producer mengirimkan pesan ke message queue, dan pesan tersebut akan disimpan dalam queue hingga ada konsumen yang siap memprosesnya. Consumer kemudian mengambil pesan dari queue dan memprosesnya.
- Contoh:
- Sistem Pemesanan Tiket: Ketika seorang pengguna memesan tiket, sebuah pesan "pesanTiket" dikirimkan ke message queue. Sistem pemrosesan pembayaran akan mengambil pesan ini dan memproses pembayaran. Setelah pembayaran berhasil, sistem pemrosesan tiket akan mengambil pesan ini lagi dan memproses pemesanan tiket.
- Sistem Logging: Sama seperti event bus, message queue juga dapat digunakan untuk sistem logging. Pesan-pesan log dapat dikirimkan ke message queue dan kemudian diproses oleh komponen logging.
Message Broker
- Definisi: Message broker adalah sebuah software yang mengimplementasikan message queue. Message broker bertanggung jawab untuk menerima, menyimpan, dan mengirimkan pesan antara producer dan consumer.
- Contoh:
- RabbitMQ: Sebuah message broker yang populer dan open-source.
- Apache Kafka: Sebuah message broker yang dirancang untuk menangani aliran data yang besar dan real-time.
- ActiveMQ: Sebuah message broker yang fleksibel dan dapat dikonfigurasi.
Persamaan dan Perbedaan
perbedaan even bus,message queue, message broker
Event Bus, Message Queue dan Message Broker Cocok Digunakan Untuk Apa ?.
- Event Bus: Cocok untuk komunikasi internal dalam sebuah aplikasi, terutama untuk event-event yang tidak memerlukan urutan tertentu.
- Message Queue: Cocok untuk sistem yang membutuhkan decoupling antara producer dan consumer, seperti sistem distribusi dan sistem real-time.
- Message Broker: Cocok untuk sistem yang membutuhkan fitur-fitur advanced seperti clustering, high availability, dan scalability.
Kesimpulan
Event bus, message queue, dan message broker adalah konsep yang saling terkait.
Event bus adalah sebuah mekanisme komunikasi, message queue adalah sebuah struktur data, dan message broker adalah sebuah software yang mengimplementasikan message queue.
Pemilihan teknologi yang tepat tergantung pada kebutuhan dan kompleksitas sistem yang akan dibangun.
Baca artikel lainya :