Estou com dúvida em relação a camada de domínio vs infraestrutura no que tange aplicar ou não “regras de negócio” diretamente numa consulta a banco. Segue abaixo descrição do cenário:
Tenho uma funcionalidade de notificação por mensagens, sempre que o usuário se loga todas as mensagens destinadas a ele são carregadas, ocorre que isso está onerando o banco.
Para exibir as mensagens pro usuário é aplicado uma regra de negócio que atualmente está na entidade de domínio, porém pra resolver o problema de performance eu poderia aplicar essa regra diretamente na query(Regra: é possível cadastrar mensagens com prazo de expiração, nesse caso serão exibidas somente as mensagens no prazo de validade).
Dúvida 1: filtro no banco levando a regra de negócio pra lá ou carrego todas as mensagens em memória, onerando o banco, e depois aplico a regra de negócio na entidade de domínio.
Dúvida 2: vocês consideram esse filtro por uma coluna da tabela sendo realizado na query como regra de negócio?
Seguindo as boas práticas de manter o domínio da aplicação independente da infra, como vocês fazem nesse caso, que pra carregar os registros do banco em memória e depois aplicar as regras de negócio acaba gerando problemas de performance por colocar muitos dados na memória do servidor de aplicação?
