Logica do SistemaSecao 9
ApiStatus — Monitoramento Galileu
Incoerencias Identificadas
| ID | Descricao |
|---|---|
| (escalabilidade) | Retencao duplicada entre RegistrarOfertasWorker e RetentionPolicyWorker |
| (escalabilidade) | HardDeleteAsync no RegistrarOfertasWorker carrega todos os registros em memoria |
| (escalabilidade) | Crescimento de ~2.3M registros/ano sem indice em (TenantId, Data) |
Logica e Retencao
Entidade
ApiStatus:TenantId,Status(ApiStatusEnum:Online/Offline),Data(DateTime).Insercao:
ProcessarOfertasWorker(viaProcessarTenant) insere um registro apos cada ciclo bem-sucedido ou de falha.Volume estimado: ~288 registros/dia/tenant (ciclo de 5 min, 24h). Com 22 tenants: ~6.336 registros/dia, ~2,3 milhoes/ano.
Retencao — duplicada (incoerencia):
RegistrarOfertasWorker.cslinha 99: apaga registros mais antigos que 4 meses viaHardDeleteAsync, carregando todos em memoria antes de deletar.RetentionPolicyWorker→ApiStatusRetentionTask.cslinha 25:HardDeleteAsync(x => x.Data < DateTime.UtcNow.AddMonths(-4))— deleta por predicado sem paginacao.Dois workers realizam o mesmo cleanup, potencialmente em colisao.