Princípio: cada padrão de acesso ao seu banco. SQL não é "default"; Mongo não é "moderno"; Redis não é "rápido". Cada um é a melhor escolha para uma classe específica de problema — e a pior para outras. Polyglot persistence (ver página dedicada) é a consequência natural disso quando o sistema cresce.

Árvore de decisão

Leia de cima para baixo. A primeira pergunta que responder "sim" decide o banco. Se todas respondem "não", vai pro default (Document DB).

Need ACID + joins?SQLPostgreSQL · SQL ServerHighly connected data?Graph DBNeptune · Neo4jFull-text search?Search engineOpenSearch · ElasticAppend-heavy or IoT?Column storeCassandra · DynamoDBFast O(1) key lookup?Key-ValueRedis · ElastiCacheDocument DB (default)MongoDB · DynamoDBnononononoyesyesyesyesyes
Cuidado com a primeira pergunta. "Need ACID" não significa "preciso de transação às vezes". Significa "operações multi-row precisam ser atômicas e consistentes" — saldo de conta, estoque, pagamento. Se ACID é nice-to-have, talvez não seja SQL.