O livro
Organizado em partes progressivas, dos fundamentos à observabilidade em produção. Cada capítulo pode ser lido de forma independente, mas a ordem abaixo é a recomendada para quem está começando.
Parte I — Fundamentos
Parte II — Arquitetura
- Arquitetura interna
Producer, Broker, Cluster, Topic, Partition, Offset, Consumer e Consumer Group — as peças que compõem o Kafka.
- Partitions e ordenação
Por que partitions existem, como a key determina a ordenação e por que o Kafka não garante ordem global.
- Brokers, líderes e replicação
Replication Factor, Leader, Follower, ISR e o que acontece quando um broker cai.
- Consumer Groups e Rebalance
Como um Consumer Group divide partitions entre consumers, o que acontece quando essa divisão muda, e o custo real de um rebalance.
Parte III — Consumo e reprocessamento
- Offset e Commit
Como um consumer marca até onde já leu, a diferença entre auto commit e commit manual, e os riscos de cada abordagem.
- Retention e Replay
Por quanto tempo o Kafka guarda um evento, e como usar essa retenção para reprocessar histórico com replay.
- Retry e DLQ
Como distinguir erro transitório de erro permanente, e por que o Kafka não tem DLQ nativa como o SQS.
Parte IV — Confiabilidade
- Garantias de entrega
At Most Once, At Least Once e Exactly Once — o que cada garantia realmente promete, e onde exactly-once para de valer.
- Idempotência
Por que consumers precisam ser idempotentes, e como implementar isso com eventId, constraint de unicidade e atomicidade.
- Transações e Outbox Pattern
O problema do dual write entre banco e Kafka, e como o transactional outbox resolve com consistência garantida.
Parte V — Java e Spring Boot
- Producer com Spring Kafka
KafkaTemplate na prática — topic, key, value, serialização, callbacks, headers e correlationId.
- Consumer com Spring Kafka
@KafkaListener na prática — groupId, concurrency, Acknowledgment, desserialização e tratamento de exceções com retry e DLQ.
- Observabilidade
Consumer lag, throughput, logs estruturados, correlationId, métricas e tracing — como saber que um pipeline Kafka está saudável.