Outline Artikel
Dalam arsitektur modern berbasis cloud, komunikasi antar sistem dan layanan menjadi komponen inti. Di platform Azure, Microsoft menyediakan beberapa layanan yang dirancang khusus untuk menangani berbagai jenis komunikasi dan event: Azure Service Bus, Event Hub, dan Event Grid. Meskipun semuanya terkesan “mirip” karena berurusan dengan data dan peristiwa, masing-masing memiliki tujuan spesifik dan cara kerja berbeda.
Azure Service Bus adalah layanan messaging enterprise-grade yang dirancang untuk komunikasi andal antar aplikasi atau layanan. Ia mendukung konsep message queue dan publish-subscribe model. Ideal untuk komunikasi antar microservices backend atau sistem transaksi.
queueClient.send("OrderQueue", message: { orderId: 123, item: "Laptop" })
while message = queueClient.receive("OrderQueue"):
processOrder(message)
Azure Event Hub adalah layanan untuk mengelola aliran data berdurasi tinggi, cocok untuk telemetri, log, atau data streaming dari banyak sumber.
for each second:
eventHub.send("TemperatureSensor", { deviceId: "sensor1", value: 28.4 })
Azure Event Grid berfungsi sebagai event router. Ia menerima event dari berbagai sumber (Blob, Resource Group, dll) dan menyampaikannya ke handler yang sesuai (Function, Webhook, Logic App).
on BlobCreated in "MyContainer":
send event to Function("GenerateThumbnail")
Fitur | Service Bus | Event Hub | Event Grid |
---|---|---|---|
Fokus | Messaging (command) | Data streaming | Event notification |
Delivery | Reliable queue/pub-sub | High-throughput ingestion | Lightweight push |
Durability | Tinggi | Tinggi | Menengah (event TTL) |
Use case utama | Backend komunikasi | IoT, telemetry, logs | Resource event routing |
Service Bus cocok untuk sistem backend transactional, Event Hub untuk streaming skala besar, dan Event Grid untuk event-driven ringan. Ketiganya bisa dikombinasikan dalam arsitektur eventing yang kompleks dan scalable di Azure.