costBatchWindowRef e envia os totais agregados para uma camada de cache Redis. Isso prepara os dados para o Processador de Liquidação de Custos, que lida com o reporte efetivo ao billing meter.
Ao separar o despacho do processamento, o sistema alcança melhor throughput e isolamento de falhas — o dispatcher pode executar frequentemente sem se preocupar com rate limits de APIs externas ou disponibilidade do provedor de billing.
Agendamento: A cada 15 minutos. O dispatcher respeita um limite configurável (
COST_SETTLEMENT_DISPATCHER_LIMIT) para controlar quantos registros de custo são processados por execução, prevenindo sobrecarga do banco durante períodos de alto volume.Objetivo
O dispatcher busca registros de custo não faturados, agrupa-os porcostBatchWindowRef e envia os totais agregados para uma camada de cache para que o Processador possa liquidá-los.
Fluxo
Consultar custos não faturados
Buscar registros de custo ainda não atribuídos a um
CostBatch, agrupados pelo costBatchWindowRef. A consulta respeita um limite configurável (COST_SETTLEMENT_DISPATCHER_LIMIT).Filtrar janelas já despachadas
Para cada
windowRef, verificar o cache. Se a chave já existe, a janela já foi despachada e é ignorada.