Executando verificação de segurança...
1

Olha, eu estou há uns bons anos no mercado e te direi minha perspectiva.

Eu fui ensinado a usar, desde cedo, bancos NoSQL. Mongo e Dynamo, principalmente. E o motivo era: ah Dynamo é serverless e é barato.

A grande questão é que tudo tem um preço, tanto $$ como do ponto de vista técnico.

Do ponto de vista técnico, é um saco você trabalhar com bancos NoSQL diferentes. Principalmente se sua empresa mudar do banco A para o banco B.

E do ponto de vista do $$, ele é escalável, que significa que sua aplicação vai ficar rodando enquanto seu cartão não estourar.

Outro problema é que: amanhã ou depois sua empresa pode começar a oferecer o seu serviço na versão on-premise. Ou seja, zero cloud. E aí, como que cê vai fazer? O teu cliente não quer pra hoje, ele te pediu hoje pra você ter entregado ontem. Aí voce vai argumentar: não conseguimos te entregar isso para amanhã porque infelizmente temos uma forte dependência de produtos ofertados na Cloud e blá blá blá

No fim, seu cliente não sabe o que é cloud, não sabe o que é SQL ou NoSQL. Ele quer apenas o negócio rodando na salinha dele. Ponto.

Existem bancos NoSQL que você consegue rodar localmente através de um Docker, o MongoDB e o DynamoDB também permitem você fazer isso atualmente.

Agora, vamos para a parte que realmente importa, quase sempre. Você criou um sistema para uma empresa fornecedora de energia elétrica. Eles possuem 40 milhões de clientes espalhados pelo Brasil. Aí chega o João, que é o CEO da empresa e ele quer puxar o consumo total dos últimos 10 anos. Nesse meio tempo, nasceu gente, morreu gente, pessoas se mudaram e, no fim, você tem bilhões e bilhões de registros de consumo.

Como você vai fazer essa conta? Bancos SQL, tais como MySQL, Microsoft SQL Server, Postgre e etc..., possuem o SQL como linguagem em comum. Muda algumas features e talvez sintaxe entre eles, mas, no fim, você consegue executar uma query que o próprio banco faz e calcula tudo isso pra você.

Já nos bancos que eu citei, até onde eu saiba, você não possui essa funcionalidade. Cada banco possui seu set de operações que não são comuns entre si. Aí voce teria que fazer um loop no código pra criar essa soma.

Os bancos SQL, pela vantagem de compartilhar entre si essa linguagem em comum, você consegue trocar de banco. Hospedar um banco localmente, inclusive usando Docker. Fazer queries onde o banco é o responsável pelo cálculo.

Claro que estou tirando alguns fatores como: caching estruturação da aplicação disponibilidade e etc...

Mas no geral, trabalhar com bancos SQL vira a preferência pelas capacidades que ele oferece.

Agora, os bancos NoSQL também possuem seu lugar. Caching, projetos pequenos, projetos grandea com pouco acesso, fácil escalabilidade pra aplicação e etc...

Tudo sempre depende do contexto e do momento.

Eu sempre que tenho um projeto novo, começo no NoSQL e depois, se o projeto ir pra frente, vamos de Postgre.

Carregando publicação patrocinada...