Módulo de estudo

Arquitetura de Microsserviços na Prática

Módulo 100% tutorial: construa e valide um monorepo real com 5 microsserviços (Java, Python, Go, Ruby, Node), Kafka, Redis e Docker Compose com código, caminhos de arquivo e comandos executáveis.

Nível
Avançado
Duração
36h
Pontos
2500
Aulas
63

0 de 83 etapas concluídas

O que você vai aprender

  • Implementar microsserviços com bounded contexts independentes em cinco linguagens, passo a passo.
  • Executar tutoriais reais de APIs REST, eventos Kafka e cache Redis com caminhos de arquivo e comandos.
  • Validar resiliência, observabilidade, contratos e testes distribuídos com práticas de produção.
  • Demonstrar fluxo completo de e-commerce de POST /customers até analytics.

Arquitetura de Microsserviços na Prática

Este módulo é orientado a tutoriais práticos reais: cada matéria traz código, caminhos de arquivos, comandos e testes para você executar o sistema distribuído de ponta a ponta.

Revisão 2.0.0: todas as 63 aulas foram reescritas com passo a passo, código completo por arquivo (Dockerfile, controllers, consumers, schemas) e seção Como testar com curl, docker compose e saída esperada.

Carga estimada: ~36 horas
Pré-requisitos: programação em pelo menos uma linguagem, HTTP/REST, linha de comando e Git.

O projeto

Monorepo de e-commerce distribuído com cinco microsserviços independentes:

Serviço Linguagem Framework
Customer Java Spring Boot
Order Python FastAPI
Payment Go Gin
Notification Ruby Sinatra API
Analytics Node.js Express

Comunicação principal via Kafka (eventos) e Redis (cache e Pub/Sub). Tudo sobe com docker compose up.

Estrutura do projeto

Pasta Caminho Responsabilidade
Serviços services/* APIs, regras de negócio e persistência por contexto
Infraestrutura infra/ Kafka, Redis, Prometheus, Grafana, Jaeger
Contratos contracts/events JSON Schema versionado dos eventos
Compartilhado shared/ Scripts e convenções do monorepo
Orquestração docker-compose.yml, Makefile Subida e operação local padronizada

Como usar o Makefile

  • make help — lista comandos disponíveis.
  • make up / make down — sobe e derruba o ambiente.
  • make logs — acompanha logs agregados.
  • make test — executa testes dos serviços.

Dica sobre .env

Copie .env.example para .env e ajuste portas e hosts locais. Nunca commite segredos reais. Em equipe, documente variáveis novas no .env.example no mesmo PR.

Trilha completa (20 matérias)

  1. Docker, Monorepo e Primeiro Deploy (docker-monorepo-fundamentos)
  2. APIs REST e Bounded Contexts (apis-rest-bounded-contexts)
  3. Kafka e o Primeiro Evento (kafka-primeiro-evento)
  4. Fluxo order.created (fluxo-order-created)
  5. Fluxo de Pagamento e Notificação (fluxo-payment-notification)
  6. Analytics e Múltiplos Eventos (fluxo-analytics)
  7. Redis Pub/Sub vs Kafka (redis-pubsub-vs-kafka)
  8. Redis Cache (Cache Aside) (redis-cache-aside)
  9. Dead Letter Queue (dead-letter-queue)
  10. Retry, Backoff e Circuit Breaker (retry-backoff-circuit-breaker)
  11. Idempotência e Deduplicação (idempotencia-eventos)
  12. Consumer Groups e Particionamento (consumer-groups-particionamento)
  13. Escalando Containers (escalando-containers)
  14. Observabilidade: Prometheus e Grafana (observabilidade-prometheus-grafana)
  15. Tracing Distribuído (tracing-distribuido)
  16. Testes em Sistemas Distribuídos (testes-sistemas-distribuidos)
  17. Contratos de Eventos (contratos-eventos)
  18. Versionamento de Eventos (versionamento-eventos)
  19. Chaos Engineering (chaos-engineering)
  20. Projeto Final: Fluxo Completo (projeto-final-microsservicos)

Outline oficial

Consulte o guia detalhado em arquitetura-microsservicos-pratica-outline.md.

Grade curricular

Cada matéria agrupa várias aulas e um simulado. Ao concluir todas, faça a prova final para obter o certificado.

  • Não iniciada
  • Em andamento
  • Concluída
  1. Matéria 1

    Docker, Monorepo e Primeiro Deploy

    Você constrói a base operacional do e-commerce distribuído com monorepo multi-stack, Dockerfiles reais e docker-compose para subir 5 serviços com health checks.

    1. Aula

      Por que Docker? Containers e imagens

      45 min · 25 pts

      Abrir aula
    2. Aula

      Volumes, networks e isolamento

      40 min · 25 pts

      Abrir aula
    3. Aula

      Estrutura do monorepo e os cinco serviços

      45 min · 30 pts

      Abrir aula
    4. Aula

      Docker Compose: build, logs, health e restart

      50 min · 35 pts

      Abrir aula
    5. Simulado da matéria

      Quiz: Docker e Monorepo - Fundamentos

      6 questões · mín. 60%

      Fazer simulado
  2. Matéria 2

    APIs REST e Bounded Contexts

    Você implementa APIs REST reais por contexto de negócio, separando controller/service/repository em cada stack para preparar integração assíncrona sem acoplamento.

    1. Aula

      DDD, Bounded Context e independência

      40 min · 25 pts

      Abrir aula
    2. Aula

      Camadas: controller, service, repository, DTO

      50 min · 30 pts

      Abrir aula
    3. Aula

      Implementando Customer e Order Services

      60 min · 35 pts

      Abrir aula
    4. Aula

      Implementando Payment, Notification e Analytics

      55 min · 35 pts

      Abrir aula
    5. Simulado da matéria

      Quiz: APIs REST e Bounded Contexts

      6 questões · mín. 60%

      Fazer simulado
  3. Matéria 3

    Kafka e o Primeiro Evento

    Você implementa o primeiro fluxo orientado a eventos do projeto, publicando e consumindo `customer.created` com contrato explícito e validação ponta a ponta.

    1. Aula

      Event-Driven Architecture e REST vs eventos

      40 min · 25 pts

      Abrir aula
    2. Aula

      Kafka: topics, partitions, offsets e groups

      50 min · 30 pts

      Abrir aula
    3. Aula

      Garantias: at-least-once, at-most-once, exactly-once

      45 min · 30 pts

      Abrir aula
    4. Aula

      Implementando customer.created ponta a ponta

      60 min · 40 pts

      Abrir aula
    5. Simulado da matéria

      Quiz: Kafka - Primeiro Evento

      6 questões · mín. 60%

      Fazer simulado
  4. Matéria 4

    Fluxo order.created

    Você modela e implementa o fluxo `order.created` completo: Order publica evento, Payment consome e o sistema passa a operar com consistência eventual de forma explícita.

    1. Aula

      Modelando order.created

      40 min · 25 pts

      Abrir aula
    2. Aula

      Order publica, Payment consome

      55 min · 35 pts

      Abrir aula
    3. Aula

      Consistência eventual na prática

      45 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Fluxo Order Created

      6 questões · mín. 60%

      Fazer simulado
  5. Matéria 5

    Fluxo de Pagamento e Notificação

    Você finaliza o ciclo de pagamento com eventos de sucesso/falha e consumo no Notification Service, incluindo práticas de resiliência para mensagens problemáticas.

    1. Aula

      payment.approved e payment.failed

      45 min · 25 pts

      Abrir aula
    2. Aula

      Notification Service consumindo pagamentos

      55 min · 35 pts

      Abrir aula
    3. Aula

      Resiliência e poison messages (intro)

      45 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Fluxo Payment Notification

      6 questões · mín. 60%

      Fazer simulado
  6. Matéria 6

    Analytics e Múltiplos Eventos

    Você cria um serviço de Analytics orientado a eventos sem acoplar leitura ao banco de outros serviços. A proposta é transformar eventos operacionais em métricas úteis para produto e operação no e-commerce.

    1. Aula

      Papel do Analytics no ecossistema

      25 min · 25 pts

      Abrir aula
    2. Aula

      Consumindo múltiplos eventos

      40 min · 35 pts

      Abrir aula
    3. Aula

      Estatísticas em tempo quase real

      30 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Fluxo de Analytics

      6 questões · mín. 60%

      Fazer simulado
  7. Matéria 7

    Redis Pub/Sub vs Kafka

    Nesta fase o aluno ganha repertório para decidir ferramenta de mensageria conforme requisito real. Você coloca Redis e Kafka lado a lado no mesmo projeto para observar comportamento, limitações e trade-offs operacionais.

    1. Aula

      Redis vs Kafka: quando usar cada um

      35 min · 30 pts

      Abrir aula
    2. Aula

      Redis Pub/Sub na prática

      40 min · 35 pts

      Abrir aula
    3. Aula

      RPC vs eventos; filas vs Pub/Sub

      30 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Redis Pub/Sub vs Kafka

      6 questões · mín. 60%

      Fazer simulado
  8. Matéria 8

    Redis Cache (Cache Aside)

    A matéria aborda performance com Redis cache sem sacrificar consistência do domínio. Você implementa leituras aceleradas para dados de cliente e cria disciplina de invalidação para evitar respostas obsoletas.

    1. Aula

      Cache aside: por que e como

      30 min · 25 pts

      Abrir aula
    2. Aula

      TTL, eviction e invalidação

      30 min · 25 pts

      Abrir aula
    3. Aula

      Cache no Customer Service

      40 min · 35 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Redis Cache Aside

      6 questões · mín. 60%

      Fazer simulado
  9. Matéria 9

    Dead Letter Queue

    Aqui você fecha o ciclo de tratamento de falhas irreparáveis no consumo assíncrono. O objetivo é preservar throughput do sistema principal e manter evidências para correção posterior sem perda de controle operacional.

    1. Aula

      Poison messages e quando usar DLQ

      30 min · 25 pts

      Abrir aula
    2. Aula

      Configurando DLQ no Payment

      40 min · 35 pts

      Abrir aula
    3. Aula

      Reprocessamento e monitoramento

      35 min · 30 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Dead Letter Queue

      6 questões · mín. 60%

      Fazer simulado
  10. Matéria 10

    Retry, Backoff e Circuit Breaker

    A etapa reforça resiliência em cenários de indisponibilidade parcial no e-commerce distribuído. Você codifica políticas de repetição e proteção de chamadas para melhorar taxa de sucesso sem sobrecarregar dependências.

    1. Aula

      Retry simples, exponencial e backoff

      30 min · 25 pts

      Abrir aula
    2. Aula

      Três tentativas antes da DLQ

      40 min · 35 pts

      Abrir aula
    3. Aula

      Circuit Breaker (introdução)

      25 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Retry, Backoff e Circuit Breaker

      6 questões · mín. 60%

      Fazer simulado
  11. Matéria 11

    Idempotência e Deduplicação

    Você garante que uma mesma mensagem não cause cobrança ou notificação duplicada. A proposta é consolidar deduplicação em pontos críticos do fluxo de pagamento e comunicação com o cliente.

    1. Aula

      O problema das mensagens duplicadas

      25 min · 25 pts

      Abrir aula
    2. Aula

      Event ID e banco de controle

      35 min · 30 pts

      Abrir aula
    3. Aula

      Proteção completa nos consumers

      40 min · 35 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Idempotência em Eventos

      6 questões · mín. 60%

      Fazer simulado
  12. Matéria 12

    Consumer Groups e Particionamento

    A matéria mostra como escalar consumo Kafka de forma previsível no monorepo. Você testa múltiplas instâncias e valida ganhos reais sem violar ordenação importante para o negócio.

    1. Aula

      Consumer groups por dentro

      35 min · 30 pts

      Abrir aula
    2. Aula

      Particionamento e ordem das mensagens

      30 min · 25 pts

      Abrir aula
    3. Aula

      Múltiplas instâncias do Payment Service

      40 min · 35 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Consumer Groups e Particionamento

      6 questões · mín. 60%

      Fazer simulado
  13. Matéria 13

    Escalando Containers

    Você evolui operação local para cenário mais próximo de produção usando escala de containers. O foco está em throughput, limites de recursos e comportamento do sistema sob carga crescente.

    1. Aula

      Escala horizontal vs vertical

      25 min · 25 pts

      Abrir aula
    2. Aula

      Réplicas no Docker Compose

      40 min · 35 pts

      Abrir aula
    3. Aula

      Backpressure e limites

      30 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Escalando Containers

      6 questões · mín. 60%

      Fazer simulado
  14. Matéria 14

    Observabilidade: Prometheus e Grafana

    Esta etapa cria visibilidade contínua da plataforma distribuída. Você coleta métricas de API e mensageria para diagnosticar degradações rapidamente e sustentar evolução segura das próximas matérias.

    1. Aula

      Logs, métricas e traces

      30 min · 25 pts

      Abrir aula
    2. Aula

      Prometheus e instrumentação

      40 min · 35 pts

      Abrir aula
    3. Aula

      Dashboards Grafana

      35 min · 30 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Observabilidade com Prometheus e Grafana

      6 questões · mín. 60%

      Fazer simulado
  15. Matéria 15

    Tracing Distribuído

    A matéria conecta eventos e chamadas síncronas em um único rastro de execução. O objetivo é facilitar troubleshooting em fluxos longos de negócio do e-commerce com evidência temporal por salto.

    1. Aula

      Trace ID, Span e propagação

      30 min · 25 pts

      Abrir aula
    2. Aula

      OpenTelemetry nos cinco serviços

      45 min · 40 pts

      Abrir aula
    3. Aula

      Jaeger: fluxo ponta a ponta

      35 min · 30 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Tracing Distribuído

      6 questões · mín. 60%

      Fazer simulado
  16. Matéria 16

    Testes em Sistemas Distribuídos

    Você estrutura estratégia de testes para arquitetura distribuída sem depender apenas de validação manual. A matéria combina velocidade de feedback local com confiança em integrações críticas do monorepo.

    1. Aula

      Testes unitários por serviço

      40 min · 30 pts

      Abrir aula
    2. Aula

      Integração e Testcontainers

      45 min · 40 pts

      Abrir aula
    3. Aula

      Testes de contrato e mocks

      35 min · 30 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Testes em Sistemas Distribuídos

      6 questões · mín. 60%

      Fazer simulado
  17. Matéria 17

    Contratos de Eventos

    Aqui o time formaliza eventos como contrato versionado e auditável. O resultado é reduzir quebras silenciosas entre produtor e consumidor em um ecossistema com múltiplas linguagens.

    1. Aula

      Pasta contracts e JSON Schema

      30 min · 25 pts

      Abrir aula
    2. Aula

      Validação antes do processamento

      40 min · 35 pts

      Abrir aula
    3. Aula

      Compatibilidade e evolução

      30 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Contratos de Eventos

      6 questões · mín. 60%

      Fazer simulado
  18. Matéria 18

    Versionamento de Eventos

    A matéria trata evolução contínua do domínio com contratos vivos. Você aprende a introduzir novos campos e semânticas mantendo compatibilidade e observabilidade durante toda a transição.

    1. Aula

      customer.created.v1 vs v2

      30 min · 25 pts

      Abrir aula
    2. Aula

      Estratégias de compatibilidade

      35 min · 30 pts

      Abrir aula
    3. Aula

      Migração sem downtime

      30 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Versionamento de Eventos

      6 questões · mín. 60%

      Fazer simulado
  19. Matéria 19

    Chaos Engineering

    Nesta fase o sistema é testado sob falhas reais de infraestrutura e aplicação. O foco é validar se mecanismos de retry DLQ cache e observabilidade realmente sustentam continuidade de negócio.

    1. Aula

      O que é Chaos Engineering

      25 min · 25 pts

      Abrir aula
    2. Aula

      Experimentos práticos

      45 min · 40 pts

      Abrir aula
    3. Aula

      Análise e hardening pós-caos

      35 min · 30 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Chaos Engineering

      6 questões · mín. 60%

      Fazer simulado
  20. Matéria 20

    Projeto Final: Fluxo Completo

    A última etapa integra tudo o que foi construído no monorepo do e-commerce. Você executa uma apresentação fim a fim com roteiro técnico, checklist de operação e próximos passos para maturidade arquitetural.

    1. Aula

      Integração final passo a passo

      45 min · 40 pts

      Abrir aula
    2. Aula

      Demo: métricas, traces, cache e DLQ

      45 min · 40 pts

      Abrir aula
    3. Aula

      Manutenção, deploy e próximos passos

      30 min · 25 pts

      Abrir aula
    4. Simulado da matéria

      Quiz: Projeto Final de Microsserviços

      6 questões · mín. 60%

      Fazer simulado

Prova final bloqueada

Conclua todas as matérias e simulados para liberar a prova final.