2FinanceDocs
Arquitetura

Ciclo de uma automação

Do comando idempotente à ocorrência concluída ou reconciliada.

1. Criação

POST /v1/automations valida a entrada, normaliza a agenda quando necessário, cria a automação e sua primeira versão imutável. Mutações usam Idempotency-Key.

2. Ativação

Ativar não muda imediatamente o estado desejado. O comando cria uma operação e uma mensagem de outbox. O worker publica a versão, lê a confirmação e só então marca a intenção como ativa.

sequenceDiagram
    participant C as Cliente
    participant A as API
    participant O as Outbox
    participant P as Provider
    C->>A: :activate + Idempotency-Key
    A-->>C: 202 Operation
    O->>P: Publicar versão
    O->>P: Ler confirmação
    P-->>O: checksum observado
    O->>A: concluir operação

3. Agendamento

O scheduler lê automações elegíveis, calcula vencimentos e cria ocorrências. A constraint (automation_id, version_id, scheduled_for) impede duplicata lógica mesmo com schedulers concorrentes.

4. Execução

Um worker adquire lease da ocorrência e registra uma tentativa. Heartbeats renovam o lease; cancelamento é cooperativo. Falhas elegíveis voltam como retrying com backoff exponencial e jitter.

5. Resultado

Sucesso, falha, cancelamento, timeout ou skip são fatos terminais. Resultado ambíguo exige reconciliação; ele não autoriza repetir cegamente o efeito.

Nesta página

Ver OpenAPI