Pular para conteúdo

02 — Cliente coringa: N fluxos por instalação

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-09

Entregue em v0.0.4–v0.0.5 (2026-07-28 a 2026-07-31).

Escopo

O cliente nasceu com um fluxo fixo em código. A plataforma precisa do contrário: o mesmo binário envia dados de várias origens ao X-Adm, e o lado ZIM identifica cada uma pelo literal de handshake — o nome do programa é compartilhado.

O que foi construído

  • Handshake por arquivos com o runtime ZIM: o programa escreve Iniciou Zim, o cliente responde com a linha de continuação do fluxo (IMPORTA_PIED, Continuar, ENCERRA_MDFE).
  • Multi-fluxo em série: N fluxos ativos por instalação, um processador por fluxo, todos no mesmo par de arquivos, rodados por um agendador de thread única — nunca concorrem. A chave zim.fluxos passou a nomear os fluxos ativos (e, em v0.0.7, a ser obrigatória).
  • Fluxo abastecimento (Continuar), backport do integrador do xposto: implementado e pronto, inativo até o espelho existir no servidor.
  • Fluxo ENCERRA_MDFE: baixa de MDF-e no ERP, com duas divergências próprias — o retorno casa por contador (pode vir fora de ordem e parcial) e o erro terminal dispara alerta.
  • Observabilidade: erros sobem para o GlitchTip, com a chave cliente do properties virando tag — o DSN é compartilhado, e sem a tag não se sabe qual instalação gerou o erro.

Contratos

Contrato do abastecimento e contrato do ENCERRA_MDFE — ambos seguem o formato comum do pied; o que muda é o conjunto de tabelas e o literal.

Decisões

Decisão Assunto
0002 N processadores em série num par de arquivos único