Bancos de dados: escolher e não se arrepender
Por que relacional como padrão
Consistência, consultas flexíveis, restrições que evitam dados quebrados e ferramentas maduras. A maior parte do que se considera 'limitação relacional' se resolve com um esquema correto e índices.
Stores de documentos servem quando a estrutura realmente varia entre registros; chave-valor para cache e estado transitório; séries temporais para métricas. São adições, não substituições.
Decisões que fixam o futuro
Chaves. Estáveis e imutáveis; não use informação de negócio como chave.
Restrições. Chaves estrangeiras, unicidade e não-nulidade. Uma restrição no store vence uma verificação no código — ela pega também o caminho que você não pensou.
Horários. Armazene em um fuso horário consistente e explícito, com horário de criação e atualização por registro.
O que realmente quebra sistemas
Consultas em loop que criam centenas de chamadas em vez de uma, um índice ausente em uma coluna pela qual você filtra, e transações longas que travam. Os três aparecem só com volume real.
Indo mais fundo
Ative o log de consultas lentas desde o primeiro dia e revise toda semana. E quando adicionar um índice, meça — um índice desnecessário retarda escritas e ocupa espaço, e nem todo plano de consulta melhora com ele.