Pular para o conteúdo

D-1a — Captura

Parte da D-1 — Ingestão de Demanda


A D-1a é o ponto de entrada do sistema. Toda interação com o cidadão começa aqui. Ela tem duas camadas com documentos independentes:

Camada Responsabilidade Documento
BFF Servidor NestJS acoplado: validação, idempotência, gestão de identidade e publicação de eventos no barramento. Persiste o dado bruto de demandas; para lugares, persiste o hash de idempotência, o rastreamento_id e o payload do evento, usado pela varredura de republicação no boot. O write model definitivo pertence à L-1. D-1a - BFF.md
Front-end App React/Vite: mapa, fluxos de adição de demanda e lugar, formulários de captura D-1a - Front-end.md

Dois tipos de dado entram pelo mesmo ponto:

  1. Demandas públicas — o que está faltando, quebrado ou precisando de atenção no território.
  2. Lugares — o que existe no território: residências, organizações, equipamentos públicos.

Os dois fluxos compartilham a mesma tela inicial e o mesmo BFF, mas publicam eventos distintos no barramento: demanda.recebida e lugar.recebido. Os fluxos de identidade publicam cidadão.cadastrado, cidadão.vinculado e cidadão.perfil_atualizado. O BFF também expõe as três rotas de escrita do fluxo do conselheiro, que publicam conselheiro.cadastrado, conselheiro.atribuicao_recusada e conselheiro.atualização_registrada. A D-1a não normaliza, não categoriza, não georreferencia, não prioriza. Ela entrega o dado bruto ao barramento e devolve ao cidadão um ID para acompanhamento. A partir do evento publicado, toda a cadeia de colônias é disparada.