Skip to main content

Message Broker & Event-Driven Architecture

Panduan lengkap implementasi Message Broker untuk event-driven architecture di MStore Backend.

🎯 Overview

MStore Backend mendukung 5 message broker untuk berbagai use case: Package: pkg/utils/message_broker/

📊 Architecture


1️⃣ Kafka

Overview

Apache Kafka - Distributed event streaming platform Use Cases:
  • Event sourcing
  • Audit logs
  • Data pipeline
  • Real-time analytics

Quick Start


Publish Message


Consumer with Error Handling


2️⃣ NATS

Overview

NATS - High-performance messaging system Use Cases:
  • Microservice RPC
  • Request-reply pattern
  • Service discovery
  • Load balancing

Quick Start


Publish-Subscribe


Request-Reply Pattern


3️⃣ RabbitMQ

Overview

RabbitMQ - Message queue broker Use Cases:
  • Task queues
  • Work distribution
  • Delayed jobs
  • Priority queues

Quick Start


Task Queue Pattern


4️⃣ MQTT

Overview

MQTT - Lightweight pub/sub protocol for IoT Use Cases:
  • IoT device communication
  • Real-time sensor data
  • Mobile push notifications
  • Live updates

Quick Start


Publish Device Events


5️⃣ Redis Pub/Sub

Overview

Redis Pub/Sub - In-memory pub/sub Use Cases:
  • Cache invalidation
  • Real-time notifications
  • Session updates
  • Broadcast messages

Quick Start


Cache Invalidation Pattern


🎯 Use Case Examples

1. Transaction Event Streaming (Kafka)


2. Microservice Communication (NATS)


3. Background Job Processing (RabbitMQ)


4. IoT Device Updates (MQTT)


5. Real-time Notifications (Redis Pub/Sub)


📚 Best Practices

1. Message Idempotency


2. Error Handling & Retry


3. Graceful Shutdown


OpenTelemetry Tracing

Distributed tracing for message flows

System Design

Event-driven architecture

Cache & Redis

Redis caching strategies

Message Brokers: Pilih broker sesuai use case. Kafka untuk event streaming, NATS untuk RPC, RabbitMQ untuk task queues, MQTT untuk IoT, Redis Pub/Sub untuk real-time notifications.