Cada projeto isola uma decisão real de arquitetura de serviços e prova a resposta com teste e evidência, não só com código que compila. Cada pasta tem ambiente, dependências, testes e evidência próprios; abrir uma não exige carregar as outras.
- P00 · Ambiente reproduzível.
Garante que o ambiente nasce igual depois de apagado, com
uv, Ruff, Pyright e pytest. A instalação limpa passa; falha de import e de tipo é pega antes de rodar.
- P01 · Validação tipada de JSONL. Pydantic separa registro válido de inválido sem esconder o que falhou: seis linhas de entrada viram duas válidas e quatro rejeitadas.
- P02 · Asyncio, threads e processos.
Compara as três estratégias de concorrência no mesmo problema:
asyncio.gatherfecha I/O em 0,25s contra 2,51s sequencial; processos fecham CPU em 0,79s contra 2,26s direto. - P03 · Contratos e injeção no FastAPI.
Separa contrato HTTP, regra de negócio e persistência com
Depends; os status401,404,409,422e503aparecem na fronteira certa. - P04 · Lifespan e tarefas de fundo. Testa se um job sobrevive a um crash da API: o crash mata o job preso ao processo, o shutdown gracioso fecha os recursos antes de sair.
- P05 · Timeout, retry, backoff e jitter.
Decide quando repetir uma chamada é seguro: falha transitória repete,
400e operação insegura não. - P06 · Circuit breaker e token bucket. Decide quando parar de chamar um provedor: três falhas abrem o circuito, uma rajada maior que o bucket é recusada localmente.
- P07 · Paginação por cursor.
Pagina uma coleção que muda durante a leitura:
OFFSETrepete um item, o cursor preserva a janela original. - P08 · Webhook, HMAC, inbox e idempotência. Aceita redelivery sem repetir o efeito: três entregas produzem um registro e um efeito só, mesmo com falha simulada entre persistência e efeito.
- P09 · Constraints e migrations. Faz o banco rejeitar estado impossível: quatro escritas inválidas falham, a migration sobe e desce sem correção manual.
- P10 · EXPLAIN ANALYZE e índices.
Escolhe índice a partir do plano, não do palpite: acesso alinhado usa
Index Only Scan; N+1 faz 21 consultas contra 1 doJOIN. - P11 · RLS e connection pool. Impede que o contexto de tenant vaze pela conexão reaproveitada: sem RLS o escopo vaza; a transação segura limpa o contexto após commit e rollback.
- P12 · Kafka versus RabbitMQ.
Decide se o problema pede replay ou confirmação: um novo grupo de
consumidores relê os seis eventos no Kafka; o RabbitMQ redelivera até
receber
ack.
A ordem é sugestão, não dependência: quem já conhece o básico pode começar direto pelo problema que quer investigar.
O Forge comprova mecanismos em cenários pequenos e controlados. Não mede volume de produção, disponibilidade distribuída, custo de nuvem, operação de clusters ou comportamento multi-região.