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

Como quase todo mundo aqui, você está emocionado. Claro que não são a mesma coisa, senão eles não exisitiriam. Alguns pontos são válidos, eu sou muito contra usar NoSQL, eles nunca se provaram, mas você exagerou quando cruzou a linha dos bancos de dados, vamos por partes.

Cache: qual é o sentido de usar o seu próprio banco de dados pra cache se uma das funções do cache é diminuir a carga no banco? Um banco relacional é um recurso relativamente difícil de se escalar, o ideal é não precisar escalar horizontalmente e em muitos casos, você precisa do mesmo dado em 80% das consultas, então um Redis encaixa muito bem, já com estratégia de TTL embutido pro seu cache ser volátil

ElasticSearch: ser o mesmo algoritmo de busca, não significa ser o mesmo sistema de armazenamento, fora que muitas vezes ele é usado pra logs e você NÃO DEVE manter logs no banco em produção.

DynamoDB: ele não é chave-valor, ele é um monstro, mas que ninguém sabe usar, então, não use se quer um banco chave-valor.

Kafka: você não deve usar o seu banco em mais de um microsserviço, isso vai contra a própria arquitetura, fora que o Postgres não tem o melhor recurso do Kafka, porque ele não é um sistema de mensageria. O zero copy do Kafka é absurdo, ele quase não usa CPU e memória, trabalho em uma multinacional e o Kafka serve a toda a companhia, OLTP e OLAP, sem cair, sem precisar escalar, porque ele simplesmente joga o dado direto na interface de rede, sem copiar pra memória várias vezes

No seu site, você mencionou até o Airflow, não misture OLTP e OLAP, isso é feito também pra deixar o banco pra aplicação, não use seu banco relacional pra gerar relatórios, a menos que a empresa seja de fato pequena e se for pequena, ninguém vai inventar um Airflow.

No geral todas as ferramentas existem, porque se usar um banco relacional pra cada, será um desperdício de recurso, você não pode usar o seu banco pra tudo isso, ele não aguenta

Carregando publicação patrocinada...
3

...a menos que a empresa seja de fato pequena e se for pequena, ninguém vai inventar um Airflow.

Mas o pilar do proposto por nosso colega é justamente esse, empresas e softwares que são pequenos demais pra essa salada de ferramentas aí.

-2

Por que ser contra NoSQL? O NoSQL faz coisas que no relacional custa muito caro ou fica complexo demais de se implementar.

Quer um exemplo simples? Um usuário assina o serviço em Janeiro/2025, o plano que ele assinou mudou o preço em Junho/2025 e em Dezembro/2025, mas ele tem que continuar com o mesmo preço que os outros não tem mais acesso.

No relacional você teria que ficar criando novos registros (novos planos) pra conseguir manter a integridade de dados com "dados passados". No NoSQL, basta embutir o plano diretamente na assinatura do usuário, o que permite um grau de personalização maior ainda (tipo, um usuário específico tem desconto de 10% todos os meses enquanto mantiver o plano ativo).

No relacional resolver ess tipo de situação é um inferno.

1

Nesse caso você se engana muito. Num exemplo real, apagar os planos passados seria um erro, você tem que pensar várias vezes antes de apagar de vez um registro. O ideal seria mesmo criar novos planos com status de disponibilidade diferente. Nesse exemplo, como você teria controle de exatamente quais planos existem e ainda estão ativos pra alguns usuários? A integridade do SQL vale a pena cada dor de cabeça, pelo menos na minha experiência