Visão Geral
O curso Event-Driven Microservices with Kafka Streams ensina como projetar, desenvolver e operar microserviços orientados a eventos utilizando Apache Kafka e Kafka Streams.
Durante o treinamento, os participantes aprenderão como criar serviços independentes, capazes de se comunicar por meio de eventos, aplicar padrões arquiteturais modernos, gerenciar estado distribuído, implementar pipelines de processamento e integrar múltiplos microserviços de maneira resiliente, escalável e altamente performática.
O curso é totalmente prático, com laboratórios individuais e foco em aplicações reais.
Conteúdo Programatico
1. Introduction to Event-Driven Architecture
- What is Event-Driven Architecture
- Benefits and challenges
- Events, commands, state, and streams
- Communication patterns
- Why Kafka Streams for microservices
2. Apache Kafka Essentials (Quick Review)
- Topics, partitions, brokers
- Producers and consumers
- Delivery semantics
- Schema Registry overview
- Designing event schemas
3. Kafka Streams Fundamentals for Microservices
- Streams and stateful processing
- KStream and KTable
- Stateless operations (map, filter, flatMap)
- Stateful operations and aggregations
- Windowing
- State stores and local persistence
4. Developing Event-Driven Microservices
- Building microservices with Kafka Streams
- Designing microservice boundaries
- Event naming conventions
- Key design patterns for events
- Ensuring idempotency and exactly-once behavior
5. Service-to-Service Communication
- Event-first communication
- Using topics as service APIs
- Choreography vs orchestration
- Event versions and schema evolution
- Backward and forward compatibility
6. Advanced Kafka Streams Concepts
- Processor API
- Custom processors and transformers
- Interactive queries
- Failover, standby replicas, and fault tolerance
- Scaling Kafka Streams with partitions
7. Event Sourcing and CQRS
- What is event sourcing
- Implementing write models and read models
- Replay and reprocessing strategies
- Using Streams to project state
- CQRS patterns with Kafka Streams
8. Saga Pattern and Distributed Transactions
- Challenges of distributed transactions
- Saga orchestration vs choreography
- Implementing sagas with Kafka
- Compensation and rollback logic
9. Integrating Microservices with ksqlDB (Optional Extension)
- ksqlDB as a query layer
- Materialized views
- Creating aggregations for microservices
- Bridging Streams apps with SQL-based processing
10. Observability and Monitoring
- Monitoring Kafka Streams metrics
- Logging and tracing
- Distributed tracing with events
- Monitoring lags and throughput
- State store metrics
11. Testing Event-Driven Microservices
- Unit testing Streams topologies
- Using TestInputTopic and TestOutputTopic
- Integration tests with embedded Kafka
- Contract testing with schemas
12. Deployment and Production Considerations
- Running Kafka Streams in containers
- Memory and resource management
- Horizontal scaling strategies
- Handling version upgrades
- Blue-green and canary deployments
13. Hands-on Labs
- Creating an event-driven microservice
- Implementing stateful processing with KTable
- Creating event-sourced projections
- Implementing sagas between two services
- Monitoring and debugging the microservices
- Deploying microservices using Docker
14. Best Practices for Enterprise Implementations
- Designing stable event contracts
- Avoiding anti-patterns
- Ensuring fault tolerance
- Managing data retention and compaction
- Governance and event cataloging