Apache Kafka — распределённая платформа для потоковой обработки данных. Работает как очередь сообщений, но с сохранением на диск и возможностью перечитывания.
Основные концепции: topic (именованный поток сообщений), partition (параллельная часть топика), producer (пишет), consumer (читает), consumer group (параллельное чтение без дублирования), offset (позиция чтения).
В Go используют библиотеки segmentio/kafka-go или confluent-kafka-go:
writer := kafka.NewWriter(kafka.WriterConfig{
Brokers: []string{"localhost:9092"},
Topic: "events",
})
writer.WriteMessages(ctx, kafka.Message{Value: []byte("hello")})
Ключевое отличие от RabbitMQ: Kafka хранит сообщения и позволяет перечитывать. Идеален для event sourcing, логов, аналитики и связи микросервисов.