Go — Mensageria
TL;DR
Galho 13 da trilha Go — comunicação assíncrona entre serviços via filas e tópicos. 7 notas em 3 fases: por que desacoplar com mensageria (Iniciado); Kafka em Go, NATS em Go e o padrão de consumers/workers (Adepto); garantias de entrega/idempotência, retry/DLQ/backpressure e padrões de processamento (Magus). Ao fim, você projeta pipelines assíncronos resilientes em Go, sabendo quando trocar chamada síncrona por mensagem.
Mensageria é a resposta de Go pra desacoplamento temporal entre serviços: produtor e consumidor não precisam estar de pé ao mesmo tempo, e falhas de um lado não derrubam o outro. Ver roadmap pro estado das notas.
Notas por fase
Iniciado — por que mensageria
- 01 - Por que mensageria — desacoplamento — acoplamento temporal vs síncrono, quando trocar HTTP por mensagem, trade-offs
Adepto — as ferramentas
- 02 - Kafka em Go — client (segmentio/kafka-go ou confluent-kafka-go), producer/consumer, partições, offsets
- 03 - NATS em Go — pub/sub, request/reply, JetStream, comparação com Kafka
- 04 - Consumers e workers — worker pools, consumer groups, graceful shutdown, concorrência no consumo
Magus — garantias e resiliência
- 05 - Entrega e idempotência — at-most-once/at-least-once/exactly-once, chaves de idempotência, deduplicação
- 06 - Retry, DLQ e backpressure — retry com backoff, dead letter queue, controle de fluxo sob carga
- 07 - Padrões de processamento — pipeline, fan-out/fan-in, outbox pattern, saga
Veja também
- Trilha Go — índice geral (21 galhos + capstone)
- Próximo galho: Microservices e arquitetura (galho 14) — onde os serviços conectados por mensageria ganham fronteiras e contratos formais