Conteúdo Original em https://twitter.com/zanfranceschi/status/1639309447918157824
Ei dev,
Proposta de resolução do Desafio 0/9 dos 10 Desafios Simples de Design System que postei recentemente.
↓
https://twitter.com/zanfranceschi/status/1638232583057313792
A principal coisa que você deveria considerar num desafio assim é o motivo da separação. Quando passei por isso, era literalmente para aliviar o banco, deixá-lo com menos registros para que ficasse mais rápido. O banco tinha muitos milhões de registros.
A solução foi simples.
- Criação duma Rotina Diária de Movimentação de Dados
Criei uma rotina diária para fazer a movimentação dos registros mais antigos que X tempo para o banco histórico. Claro, a definição de X foi feita depois de uma análise das consultas mais comuns em termos de período.
- Modificação nas Rotinas de ETL
Esse banco servia de insumo para relatórios. E essa foi a parte mais chata pois foi necessário fazer joins para os relatórios que contivessem dados dos dois bancos (informações anuais, por exemplo).
- Modificação na Experiência do Usuário
Seria complexo e contra o propósito da separação dos banco continuar oferencendo aos usuários dados antigos de forma transparente. Por isso, simplesmente foi adicionada uma funcionalidade nova e separada de consulta de registros antigos.
Essa funcionalidade de consulta de dados antigos funcionava de forma assíncrona – uma planilha era gerada após o processamento. Assim, foi fácil manter o banco histórico com poucos recursos computacionais e com bom controle de demanda de acessos.
Se na funcionalidade de consulta já existente fosse detectada uma consulta maior que o período X definido, era mostrada uma mensagem sobre a opção da consulta histórica.
E essa foi a solução adotada para esse desfio – funcionou muito bem.
Top comments (0)