Acompanhamento da Feature

Chronos Sync Local - BMAC Method

Painel de leitura da documentação, planejamento e implementação por feature, com seleção centralizada antes da navegação.

Progresso Total da Feature
Feature `chronos-sync-local`
9 concluídas, 0 em review, 0 prontas para dev, 0 ainda não iniciadas.
Andamento estimado
100%
Próximos Passos
BMAC Nenhum próximo passo automático identificado com o estado atual dos artefatos.
Filtros de Stories
Biblioteca de Documentos
_evo-output/planning-artifacts/chronos-sync-local/prd.md

Product Requirements Document - Chronos Sync Local

PLANNING MD

Product Requirements Document - Chronos Sync Local

Author: Thiago
Date: 2026-04-11
Project: cobranca-hml

Executive Summary

Esta feature cria uma estrategia local de sincronizacao dos dados da Chronos para eliminar a dependencia de chamadas remotas em tempo real nos grids e indicadores do sistema de cobranca. Hoje a integracao da Travessia depende de consulta online durante a renderizacao dos fluxos operacionais, o que introduz timeout, variacao de latencia, risco de indisponibilidade e dificuldade de homologacao previsivel. A proposta e inverter esse modelo: sincronizar os dados da API em jobs controlados, persistir localmente e passar a alimentar dashboard, cards e acoes a partir dessa base local consolidada.

O objetivo nao e substituir a logica funcional ja homologada da feature chronos-titulos, e sim mudar a forma de abastecimento da origem Travessia. A regra de negocio continua a mesma: ownership segue no MySQL, enriquecimento pode seguir usando SQL Server, classificacao entre quebras, 30 dias, advogado e renegociacoes permanece centralizada, e a identidade visual B/T continua igual. O ganho esperado e operacional: tela mais rapida, menor risco de timeout, maior previsibilidade e menor acoplamento da dashboard com disponibilidade da API Chronos.

Problem Statement

O modelo atual de consulta online da Chronos causa quatro problemas concretos:

  • latencia variavel nos grids, principalmente em Quebras
  • risco de timeout HTTP e bloqueio da tela do cobrador
  • dependencia direta da disponibilidade da API externa durante a operacao
  • dificuldade de reconciliacao e auditoria porque o dado pode mudar entre uma consulta e outra

Mesmo com ajustes de timeout, lote e otimizacao, esse desenho continua fragil para uso diario. A aplicacao precisa passar a trabalhar com uma base local sincronizada, com atualizacao controlada e rastreavel.

Objectives

  • reduzir drasticamente a latencia percebida dos grids que usam dados Travessia
  • remover a dependencia de chamada Chronos em tempo real nos endpoints da dashboard
  • manter todas as regras funcionais ja homologadas na feature chronos-titulos
  • viabilizar auditoria de quando e como os dados da Chronos foram sincronizados
  • permitir rollback simples para o modo online, se necessario

Out of Scope

  • substituir SQL Server como fonte principal da Bralar
  • mudar a UX dos grids, cards ou acoes operacionais
  • alterar o ownership da carteira para fora do MySQL
  • remover o fallback de enriquecimento via SQL Server
  • publicar mudancas diretamente em producao sem homologacao completa no cobranca-hml

Users

  • cobradores que dependem da dashboard para atuar na carteira
  • gerencia operacional que acompanha indicadores e totais consolidados
  • equipe tecnica e analistas funcionais que precisam homologar divergencias e sincronizacoes

Functional Requirements

FR1. Base local sincronizada da Chronos

O sistema deve persistir localmente os dados necessarios da Chronos para alimentar os fluxos da Travessia sem consultar a API a cada request da dashboard.

FR2. Carga completa inicial

O sistema deve permitir uma carga completa inicial da carteira Chronos homologada, com registros suficientes para construir historico local e permitir reprocessamento.

FR3. Cargas incrementais recorrentes

O sistema deve permitir sincronizacao recorrente incremental, em janelas programadas, para atualizar contratos, parcelas e estados relevantes.

FR4. Consumo da dashboard a partir da base local

Os endpoints impactados do dashboard devem ler prioritariamente da base local sincronizada, e nao da API remota da Chronos em tempo real.

FR5. Ownership preservado

Antes de um registro Travessia entrar em qualquer grid operacional, o sistema deve continuar validando ownership por cpf_cnpj em cobranca_atribuicao_cliente com status = 'ATIVO'.

FR6. Regras funcionais inalteradas

As regras de classificacao entre quebras, 30 dias, advogado e renegociacoes devem permanecer equivalentes ao comportamento homologado atual.

FR7. Enriquecimento SQL Server preservado

Quando a base sincronizada nao tiver todo o contexto operacional necessario, o sistema pode continuar enriquecendo via SQL Server por cpf_cnpj e referencias derivadas.

FR8. Rastreabilidade de sincronizacao

Cada lote sincronizado deve registrar metadados minimos de execucao, incluindo inicio, fim, status, quantidade processada e eventual erro resumido.

FR9. Reprocessamento controlado

O sistema deve permitir reprocessar dados sincronizados localmente sem depender de refazer imediatamente toda a coleta externa.

FR10. Compatibilidade com a dashboard atual

O frontend atual nao deve exigir redesign para consumir a base local. Os contratos de resposta devem continuar compativeis com a dashboard existente.

Non-Functional Requirements

  • NFR1: a dashboard nao deve depender da Chronos online para responder os grids principais da Travessia
  • NFR2: a sincronizacao deve ser backend-only e manter segredos fora do repositorio
  • NFR3: jobs de sincronizacao devem ser idempotentes ou reconciliaveis
  • NFR4: divergencias entre base local e API precisam ser auditaveis
  • NFR5: a arquitetura deve permitir rollback para leitura online por configuracao
  • NFR6: toda implementacao inicial deve ser feita e validada somente em cobranca-hml
  • NFR7: nao alterar as queries SQL Server existentes sem confirmacao explicita
  • NFR8: a nova base local nao pode inflar indicadores por duplicidade de parcela ou contrato

User Journeys

Jornada 1 - Cobrador abre a dashboard sem esperar consulta externa

O cobrador acessa dashboard_cobrador.php e carrega Quebras, Renegociacoes, Recebimentos 30 Dias e Recebimentos Advogado. Em vez de aguardar consulta remota da Chronos durante a renderizacao, o backend responde a partir da base local sincronizada, preservando o mesmo comportamento operacional e visual dos grids.

Jornada 2 - Analista investiga um titulo Travessia

Ao investigar um titulo Travessia, o analista consegue verificar nao so a classificacao funcional, mas tambem de qual sincronizacao aquele dado veio, quando foi atualizado localmente e se houve enriquecimento complementar via SQL Server.

Jornada 3 - Equipe tecnica trata falha de sincronizacao sem derrubar a operacao

Se a Chronos ficar indisponivel durante uma janela de sincronizacao, a dashboard continua operando com a ultima base local valida. A equipe tecnica recebe rastros suficientes para diagnosticar a falha e repetir o job depois, sem interromper a rotina dos cobradores.

Success Metrics

  • reducao clara do tempo percebido nos grids Travessia em homologacao
  • eliminacao de timeout por consulta online da Chronos na dashboard
  • zero regressao funcional nas regras ja homologadas da feature chronos-titulos
  • capacidade de explicar, para um registro Travessia, quando foi sincronizado e como foi classificado

Risks

  • modelagem local incompleta, perdendo campos necessarios para os grids
  • duplicidade entre lotes se a sincronizacao incremental nao for bem definida
  • aumento de complexidade operacional se nao houver metadados e logs suficientes
  • divergencia entre base local e SQL Server/Chronos sem reconciliacao clara

Recommendation

A recomendacao para esta feature e implementar uma camada local de persistencia e sincronizacao da Chronos antes de qualquer expansao funcional nova na dashboard. O sistema ja validou a regra de negocio da Travessia; agora a prioridade correta e estabilidade, previsibilidade e performance operacional.