Curso Designing Event-Driven Microservices
16 horasVisão Geral
Curso Designing Event-Driven Microservices. Este curso oferece uma imersão completa no design e implementação de microsserviços orientados a eventos, explorando desde os fundamentos até padrões avançados e práticas de escalabilidade. Você aprenderá a criar sistemas distribuídos que utilizam eventos para comunicação assíncrona, garantindo flexibilidade, resiliência e alta performance.
Por que Fazer Esse Curso?
A arquitetura orientada a eventos está no coração de sistemas modernos que precisam processar grandes volumes de dados em tempo real, como plataformas de streaming, comércio eletrônico e serviços financeiros. Fazer este curso permitirá que você domine uma abordagem essencial para construir soluções tecnológicas inovadoras e esteja preparado para os desafios de arquiteturas distribuídas.
Objetivo
Após realizar este "Designing Event-Driven Microservices", você será capaz de:
- Projetar arquiteturas de microsserviços orientadas a eventos do zero.
- Implementar padrões como Event Sourcing, CQRS e Sagas em projetos reais.
- Configurar e gerenciar sistemas assíncronos com ferramentas modernas.
- Resolver desafios de escalabilidade, consistência e falhas em sistemas distribuídos.
Publico Alvo
- Desenvolvedores de software com experiência básica em microsserviços.
- Arquitetos de sistemas interessados em explorar sistemas assíncronos.
- Profissionais de TI que buscam implementar soluções escaláveis e resilientes.
Pre-Requisitos
- Conhecimentos básicos de programação (ex.: Python, Java, Node.js ou similar).
- Familiaridade com APIs RESTful e conceitos de microsserviços.
- Noções introdutórias de sistemas distribuídos são desejáveis, mas não obrigatórias.
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Module 1: Foundations of Event-Driven Microservices
- Introduction to Microservices: Recap of core principles and benefits.
- What is Event-Driven Architecture (EDA)? Concepts and motivations.
- Advantages of EDA: Decoupling, scalability, and real-time processing.
- Common Challenges: Complexity, debugging, and data consistency.
- Industry Examples: Event-driven systems in e-commerce, gaming, and logistics.
Module 2: Events and Asynchronous Messaging
- Anatomy of an Event: Structure (headers, payload, metadata) and types (notification, command, state).
- Messaging Models: Publish/Subscribe vs. Point-to-Point queues.
- Tools Overview: Apache Kafka, RabbitMQ, AWS SNS/SQS – Use cases and setup.
- Delivery Semantics: "At least once", "At most once", and "Exactly once" processing.
- Practical Exercise: Building a simple event producer and consumer.
Module 3: Core Design Patterns
- Event Sourcing: Persisting state as a stream of events.
- CQRS (Command Query Responsibility Segregation): Separating reads and writes for efficiency.
- Saga Pattern: Coordinating distributed transactions with events (choreography vs. orchestration).
- Eventual Consistency: Managing data consistency in asynchronous systems.
- Handling Duplicates: Idempotency and event deduplication techniques.
Module 4: Advanced Implementation and Scalability
- Frameworks for EDA: Exploring Spring Cloud Stream, Axon Framework, and others.
- Observability: Monitoring events with Prometheus and tracing with Jaeger.
- Scaling Strategies: Event partitioning, sharding, and load balancing.
- Resilience Patterns: Retries, dead letter queues, and circuit breakers.
- Security Practices: Event encryption, authentication, and access control.