NoSQL

NoSQL is an umbrella term for databases that depart from the strict relational, SQL-based, table-and-row model. The category emerged in the late 2000s as web-scale applications needed horizontal scaling and flexible schemas that traditional relational systems struggled to provide. NoSQL is not a single technology but four broadly recognised families.

The four families

  • Document. JSON-like documents with flexible schema. Examples: MongoDB, Couchbase, Firestore, DynamoDB (in document mode).
  • Key-value. Pure key-to-value lookup, often in memory. Examples: Redis, Memcached, DynamoDB (in key-value mode), Riak.
  • Column-family. Sparse, wide tables grouped into column families, optimised for write-heavy and analytical reads. Examples: Cassandra, ScyllaDB, HBase, Bigtable.
  • Graph. Nodes and edges with first-class traversal queries. Examples: Neo4j, Amazon Neptune, ArangoDB, TigerGraph, Memgraph.

What NoSQL trades

  • Often weaker consistency models (eventual or tunable) in exchange for horizontal scaling and availability.
  • Often weaker joins and transactions in exchange for simpler scaling stories.
  • Often more flexible schemas at the cost of stricter constraint enforcement.

Modern relational databases have absorbed many NoSQL features (JSON columns, horizontal scaling, multi-region), and many NoSQL systems have added transactions; the boundary is no longer sharp.

🔗

Subscribe to Sahil's Playbook

Clear thinking on product, engineering, and building at scale. No noise. One email when there's something worth sharing.
[email protected]
Subscribe
Mastodon