tech-notes-and-questions

When to use which DB

  PostgreSQL Oracle DB Cassandra DB Mongo DB Elasticsearch Redis
Use Case Traditional relational database requirements with ACID compliance, complex queries, and support for advanced data types. Large-scale enterprise applications that require high availability, scalability, and robust security features. Distributed NoSQL database designed for handling large amounts of data across many commodity servers with no single point of failure. Document-based NoSQL database suited for applications requiring flexible schemas and fast development cycles. Search and analytics engine optimized for full-text search, data indexing, and real-time data exploration. In-memory key-value store used for caching, real-time analytics, and session management.
Transaction Requirement Transactions with complex joins & aggregations Transactions with high data volumes Faster ‘WRITE’ transactions like time-series data, logging, IoT, and real-time analytics. Large scale transactions Full-text search functionality with fast search and filtering capabilities Fast read and write operations with data persistence options
Schema Flexibility Strict pre decided schemas Fixed schema Flexible schema Best for cases of rapidly changing schema requirements Flexible till a certain level Schema is usually KEY-VALUE pairs, while VALUE can have any data structure
Examples Financial systems, complex enterprise applications, and geographic data handling Large financial institutions, telecom, ERP systems, and complex legacy applications. Social media platforms, IoT applications, and real-time data analytics. Content management systems, real-time analytics, mobile applications, and catalogs. Search engines for websites, log/metrics monitoring (e.g., using ELK stack: Elasticsearch, Logstash, and Kibana), and product recommendation engines. Caching for web applications, real-time gaming leaderboards, and session storage.

Choosing the Right Database

Example Scenarios

1. E-Commerce Web Application

2. Large-Scale Enterprise Financial System

3. Social Media Platform with Massive Data Scale

4. Content Management System for Blogs/Media

5. Search Engine for a Website

6. Real-Time Analytics and Caching