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

  1. 01 - Por que mensageria — desacoplamento — acoplamento temporal vs síncrono, quando trocar HTTP por mensagem, trade-offs

Adepto — as ferramentas

  1. 02 - Kafka em Go — client (segmentio/kafka-go ou confluent-kafka-go), producer/consumer, partições, offsets
  2. 03 - NATS em Go — pub/sub, request/reply, JetStream, comparação com Kafka
  3. 04 - Consumers e workers — worker pools, consumer groups, graceful shutdown, concorrência no consumo

Magus — garantias e resiliência

  1. 05 - Entrega e idempotência — at-most-once/at-least-once/exactly-once, chaves de idempotência, deduplicação
  2. 06 - Retry, DLQ e backpressure — retry com backoff, dead letter queue, controle de fluxo sob carga
  3. 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