Visão Geral
O curso Kafka for Developers Using Spring Boot foi criado para desenvolvedores que desejam dominar a integração entre Apache Kafka e Spring Boot, construindo aplicações modernas baseadas em eventos (event-driven applications).
Durante o curso, o aluno aprenderá a produzir e consumir mensagens Kafka, implementar microservices reativos, trabalhar com transações e schema registry, além de realizar testes, monitoramento e deploy de aplicações Kafka integradas com Spring Boot em ambientes locais e em nuvem.
Conteúdo Programatico
Módulo 1: Fundamentos do Apache Kafka
- Conceitos essenciais: tópicos, partições, offsets, producers e consumers.
- Garantias de entrega (at-most-once, at-least-once, exactly-once).
- Estrutura de cluster, brokers e zookeeper/kraft.
- Casos de uso: integração, streaming e event sourcing.
Módulo 2: Ambiente de Desenvolvimento
- Instalação e configuração do Kafka via Docker Compose.
- Instalação do Spring Boot CLI e dependências do projeto.
- Criando um projeto Spring Boot com Spring Initializr.
- Configuração do application.yml para Kafka.
Módulo 3: Criando Producers e Consumers com Spring Boot
- Configuração de KafkaTemplate e ProducerFactory.
- Serialização e desserialização de mensagens (JSON, Avro, String).
- Implementando @KafkaListener para consumo de mensagens.
- Trabalhando com Consumer Groups e partições.
- Envio e leitura de mensagens assíncronas.
Módulo 4: Avançando com Spring Kafka
- Mensagens com headers, keys e timestamps.
- Criação dinâmica de tópicos com NewTopic.
- Configuração de batch listeners e message filtering.
- Implementando Dead Letter Topics (DLT).
- Transações Kafka com Spring Boot (
ChainedKafkaTransactionManager
).
Módulo 5: Schema Registry e Avro Integration
- Introdução ao Confluent Schema Registry.
- Configurando Avro serializers e deserializers.
- Evolução de schema e compatibilidade de versão.
- Produção e consumo de mensagens Avro em Spring Boot.
Módulo 6: Testes e Monitoramento
- Testes unitários com EmbeddedKafkaBroker.
- Estratégias de testes de integração com JUnit 5 e Testcontainers.
- Monitoramento de aplicações Kafka via Spring Actuator e Micrometer.
- Integração com Prometheus e Grafana para métricas de consumo.
Módulo 7: Segurança e Resiliência
- Autenticação SASL/SSL no Kafka.
- Controle de acesso por ACLs e roles.
- Implementação de retry policy e error handling no Spring Kafka.
- Estratégias de resiliência e fallback em sistemas distribuídos.
Módulo 8: Deploy e Integração com Microservices
- Empacotamento e deploy com Docker.
- Comunicação entre múltiplos microservices via Kafka.
- Estratégias de escalabilidade horizontal (partições e múltiplos consumers).
- Deploy em Kubernetes com Helm Charts.
- Integração com Spring Cloud Stream.
Módulo 9: Projeto Prático – Event-Driven Application
- Criação de um sistema completo baseado em eventos:
- Microservice Producer (API REST → Kafka).
- Microservice Consumer (Kafka → PostgreSQL).
- Monitoramento em tempo real com Actuator e Grafana.
- Demonstração fim a fim do fluxo de mensagens.
- Análise de logs e troubleshooting.