SQL vs NoSQL: depois de anos, quem ganhou essa guerra?
Por um tempo, NoSQL era o futuro. Schema flexível, escala horizontal, nada de joins. SQL era legado.
Isso não aconteceu como prometido. E vale entender por quê.
Por que NoSQL explodiu
O problema que NoSQL resolvia era real: bancos relacionais tradicionais tinham dificuldade com escala horizontal e esquemas que mudavam rápido. MongoDB, Cassandra e Redis chegaram resolvendo casos específicos muito bem.
O problema foi a generalização. "Use NoSQL" virou conselho padrão para qualquer projeto, independente do problema.
O que aprendemos na prática
Dados relacionais existem naturalmente na maioria dos domínios. Forçar relações em documento ou chave-valor cria problemas que SQL resolve com JOIN há 40 anos.
Consistência importa. Para sistemas financeiros, médicos, qualquer coisa onde dados incorretos têm consequências, ACID não é opcional.
SQL melhorou. PostgreSQL tem JSON nativo, arrays, full-text search, sharding com Citus. A rigidez de schema que afastava pessoas do SQL foi atenuada.
O que ficou de bom do NoSQL
Redis para cache e pub/sub. Cassandra para time series e write-heavy em escala massiva. Elasticsearch para busca full-text. Casos específicos onde NoSQL é genuinamente a solução certa.
MongoDB ganhou empresa, perdeu o argumento técnico. A maioria dos casos de uso que "exigiam" MongoDB funcionaria melhor em PostgreSQL.
A pergunta
Você usa NoSQL hoje por necessidade técnica ou por inércia de decisão anterior?