Microservices: desenhar fronteiras e operar sistemas distribuídos
Doze aulas, 100 perguntas e 20 casos sobre fronteiras, mensagens, timeout após commit, recuperação, admissão e isolamento de capacidade em microserviços.
Objetivos e percurso
Doze módulos com progressão de contratos e dados para resiliência e suporte operacional. Preserva os laboratórios históricos SQLite e HTTP/SQLite, sem ensaio de perda de energia, efeitos externos ou transações distribuídas, e acrescenta doze grupos locais de threads e semáforos executados duas vezes. Observa trabalho ativo após expirar a espera, rejeições antes de criar workers, recuperação depois de erro, reservas batch/crítica e competição numa dependência comum representada por um contador. Conteúdo original PT-PT/EN e casos fictícios APS. Avaliação interna de 62 decisões em 130 minutos. Os limites quantitativos inferiores não substituem aceitação numa aplicação representativa, oficina humana, feedback de alunos e revisão independente, ainda pendentes.
Para quem: Equipas APS L2/L3, infraestrutura, SRE, administração de sistemas e gestores técnicos.
Pré-requisitos: Noções de aplicações, monitorização e suporte à produção; não pressupõe processos internos de qualquer banco.
770 minutos de estudo estimados
- Define responsabilidades que podem evoluir sem coordenar todas as releases.
- Preserva invariantes e acompanha resultados parciais entre serviços.
- Limita o trabalho adicional provocado por falhas e lentidão.
- Controla duplicação, atraso e recuperação de mensagens.
- Segue a operação através de serviços sem confundir saúde local com conclusão.
- Prepara coexistência, recuperação e transferência para operação.
- Segue um evento pelas fronteiras locais e verifica o que persiste após uma interrupção.
- Planeia recuperação de eventos sem esconder lacunas, duplicar efeitos ou ultrapassar capacidade.
- Distingue falha na espera pela resposta de ausência de efeito e recupera uma operação segundo um contrato explícito.
- Define âmbito, parâmetros, retenção e evidência operacional de um contrato de repetição sem extrapolar garantias locais.
- Observa trabalho ainda ativo após expirar a espera e limita a admissão antes de criar novos workers.
- Compara um pool partilhado com reservas separadas e identifica dependências que continuam a juntar os caminhos.
Módulos
- Fronteiras e contratos
- Dados e transações distribuídas
- Resiliência e carga
- Mensagens e filas
- Diagnóstico e saúde
- Migração e evolução
- Outbox, inbox e falhas entre commits
- Replay, sequências e reconciliação
- Timeout depois do commit
- Idempotência, retenção e recuperação
- Capacidade ocupada e controlo de admissão
- Isolamento de capacidade e limites partilhados
Continua a aprender
Referências e versão
Microservice architecture patterns and scoped platform examples; primary guidance consulted 2026-09-30
- Domain analysis for microservices · 2026-09-30
- Data considerations for microservices · 2026-09-30
- API design for microservices · 2026-09-30
- Transactional outbox pattern · 2026-10-03
- Saga distributed transactions · 2026-09-30
- Compensating transaction pattern · 2026-10-03
- Timeouts retries and backoff with jitter · 2026-09-30
- Circuit breaker pattern · 2026-09-30
- Bulkhead pattern · 2026-10-04
- Queue-based load leveling · 2026-10-03
- Amazon SQS at-least-once delivery · 2026-09-30
- Using dead-letter queues in Amazon SQS · 2026-10-03
- Context propagation · 2026-10-03
- Liveness readiness and startup probes · 2026-09-30
- Strangler Fig pattern · 2026-09-30
- Anti-corruption layer pattern · 2026-09-30
- Transaction · 2026-10-04
- Atomic commit in SQLite · 2026-10-03
- Python sqlite3 library · 2026-10-03
- CloudEvents context attributes and event identity · 2026-10-03
- Making retries safe with idempotent APIs · 2026-10-04
- RFC9110: 504 Gateway Timeout · 2026-10-04
- http.client: HTTP protocol client · 2026-10-04
- threading: bounded semaphores, Event and thread lifecycle · 2026-10-04
- http.server: HTTP servers · 2026-10-04
- Handling Overload · 2026-10-04
O que vais explorar
0 / 12Fronteiras e contratos
Define responsabilidades que podem evoluir sem coordenar todas as releases.
Dados e transações distribuídas
Preserva invariantes e acompanha resultados parciais entre serviços.
Resiliência e carga
Limita o trabalho adicional provocado por falhas e lentidão.
Mensagens e filas
Controla duplicação, atraso e recuperação de mensagens.
Diagnóstico e saúde
Segue a operação através de serviços sem confundir saúde local com conclusão.
Migração e evolução
Prepara coexistência, recuperação e transferência para operação.
Outbox, inbox e falhas entre commits
Segue um evento pelas fronteiras locais e verifica o que persiste após uma interrupção.
Replay, sequências e reconciliação
Planeia recuperação de eventos sem esconder lacunas, duplicar efeitos ou ultrapassar capacidade.
Timeout depois do commit
Distingue falha na espera pela resposta de ausência de efeito e recupera uma operação segundo um contrato explícito.
Idempotência, retenção e recuperação
Define âmbito, parâmetros, retenção e evidência operacional de um contrato de repetição sem extrapolar garantias locais.
Capacidade ocupada e controlo de admissão
Observa trabalho ainda ativo após expirar a espera e limita a admissão antes de criar novos workers.
Isolamento de capacidade e limites partilhados
Compara um pool partilhado com reservas separadas e identifica dependências que continuam a juntar os caminhos.