Diego Souza · AI Engineer

Todos os projetos

Workflows assíncronos duráveis

Trabalho de agente que sobrevive à morte de um worker no meio da tarefa.

gate isolado verificado, sem execução em nuvemÚltima verificação: 2026-10-30 · Commit ceaeedc

Resumo

Problema
O trabalho continua depois da resposta HTTP, e brokers entregam uma mensagem mais de uma vez.
Meu papel
Projetei os estados da tarefa, o modelo de lease e o registro de efeito.
Stack
Python, FastAPI, Redis Streams, PostgreSQL, SQS-compatible service, Terraform
Resultado
O gate fake completo e isolado passou: 127 tests, locked service scenarios, image build and Terraform plan.

API e workers para tarefas longas de IA, com leases, retries, dead-letter e recuperação de crash, testados com Redis Streams real e um serviço compatível com SQS. Tarefa travada é um estado que eu projetei, não um incidente.

Veja rodando

O demo ao vivo roda este sistema contra um modelo real e mostra cada passo.

Demo ao vivo

Como funciona

Uma tarefa que sobrevive ao workerFluxo: Na fila, Com lease, Rodando, Retry, Dead letter, ConcluídaNa filaCom leaseRodandoRetryDead letterConcluídaUma tarefa que sobrevive ao workerFluxo: Na fila, Com lease, Rodando, Retry, Dead letter, ConcluídaNa filaCom leaseRodandoRetryDead letterConcluída

O fluxo inteiro. Aperte tocar ou próximo para percorrer.

Versão em texto deste diagrama
  1. Na fila P04. O job é gravado antes de a resposta HTTP voltar.
    • depois Com lease
  2. Com lease P04. Um worker segura um lease com prazo.
    • depois Rodando
  3. Rodando P04. O efeito é registrado para uma reentrega não repeti-lo.
    • depois Concluída
    • depois Retry (falha transitória)
    • depois Dead letter (falha permanente)
  4. Retry P04. Uma falha transitória volta com atraso.
    • depois Na fila
  5. Dead letter P04. Uma falha permanente para aqui, visível e reprocessável.
  6. Concluída P04. O resultado é gravado uma vez.

Decisões

Resultados

Medido

Medido
MétricaValorModoFonte
Gate fake completo e isolado O Terraform foi planejado, nunca aplicado.127 tests, locked service scenarios, image build and Terraform planserviços, modelo fake.planning/phases/043-root-snapshot-gate/VERIFY.mdCommit d3e694d · 2026-10-30 · Exit code 0

Não medido, então não afirmado

  • Comportamento em um deploy em nuvem só deste serviço. O Terraform foi planejado, nunca aplicado.
  • Vazão.

Galeria de falhas

O que aconteceu
Um evento de outbox falhou com `UnboundLocalError`.
Causa
Um import local à função sombreava o import do módulo.
O que mudou
Os imports locais foram removidos e a suíte passa.
O que aconteceu
Uma instalação offline não resolvia uma dependência fixada.
Causa
A instalação avulsa ignorava o lock.
O que mudou
As instalações passam pelo lock, então o mesmo conjunto de pacotes é reproduzido.

Valide você mesmo

git clone https://github.com/DiegoVSouza/supportops-async.git
cd supportops-async
uv sync --locked

Esperado: O ambiente instala a partir do lock. O gate de serviços precisa de Docker e dos arquivos compose citados no workflow.

O que eu faria diferente

Eu escreveria o cenário de recuperação de crash como o primeiro teste, antes do caminho feliz.

Próximo projeto

Este site e seu design system