Message broker — промежуточник между сервисами, который принимает, хранит и доставляет сообщения. Producer отправляет сообщение в брокер, consumer забирает. Они не знают друг о друге — это decoupling.
Основные брокеры: Kafka (event streaming, хранит навсегда, высокий throughput), RabbitMQ (классическая очередь, routing, гибкие exchange-ы), NATS (легковесный, для микросервисов).
// producer (Kafka)
writer := kafka.NewWriter(kafka.WriterConfig{
Brokers: []string{"localhost:9092"},
Topic: "orders",
})
writer.WriteMessages(ctx, kafka.Message{
Key: []byte("order-123"),
Value: []byte({"amount": 100}),
})
Два паттерна доставки: point-to-point (один consumer обрабатывает сообщение) и pub/sub (все подписчики получают копию). Kafka использует consumer groups — внутри группы сообщение получает один consumer, между группами — все. Брокер решает проблему пиковых нагрузок (буферизация), отказоустойчивости и временного связывания.