Skip to main content

Supervisor e ciclo de vida

Se o sync receiver sobe antes do storage estar saudável, ou se um worker falha repetidamente e cria restart infinito, o runtime perde previsibilidade. O supervisor existe para transformar esse comportamento em estados observáveis.

appcore-supervisor orquestra serviços dentro do processo. Ele não reinicia o processo AppCore; isso é responsabilidade de systemd, launchd, Windows Service Control Manager, container runtime ou orquestrador.

Serviços declaram nome, recurso, dependências, restart policy, activation e criticidade. O supervisor valida dependências, calcula ordem topológica, inicia em ordem e para em cooperação.

Restart não é inline: consome orçamento, aplica backoff/jitter, agenda em executor limitado e aplica completion. Fila cheia não cria trabalho sem bound. Budget esgotado vira quarantine e exige operador.

Se shutdown não consegue parar um worker, o serviço vira orphaned/quarantined. Isso é mais correto do que fingir que o worker antigo desapareceu.

Limitations

  • O supervisor não reinicia o processo, apenas serviços dentro dele.
  • Shutdown é cooperativo; AppCore não mata código arbitrário com segurança.
  • Budget de restart evita storms, mas pode deixar serviço em quarantine até ação humana.
  • Health de serviço não prova correção de negócio.
  • Ordem de dependências evita races conhecidas, mas não corrige dependência unhealthy.

Próximo: updates.