Databases
Structured data, shaped for how you query it.
14 concepts · 53 technologies · 4 comparisons · 7 real stacks
Concepts
Start with Relational databases- Relational databases22 technologiesTables, SQL and transactions: the dependable default.
- Key-value stores10 technologiesPut a value under a key and get it back by that key, fast, at almost any scale.
- Document databases3 technologiesRecords stored as JSON documents that the database can query, index and update field by field.
- Wide-column stores3 technologiesHuge tables split into partitions by key, with rows kept sorted inside each one, built for heavy writes.
- Graph databases3 technologiesStore things and the links between them as first-class data, and answer questions by walking the links instead of joining tables.
- Caching7 technologiesKeep hot data in memory so you don’t ask the slow system twice.
- In-process cachesA small cache inside your service’s own memory: no network hop, but every copy of the service has its own.
- Time-series databases14 technologiesA database shaped for measurements stamped with time.
- Search indexes5 technologiesFind rows or files by what’s inside them: an index from words or character fragments to the places they appear.
- Vector databases3 technologiesStore embeddings, lists of numbers that capture what text, images or users mean, and find the ones closest to a query.
- Coordination services4 technologiesA small, strongly consistent store, usually three or five servers, that a distributed system uses to agree on who leads, who holds a lock and what the configuration is.
- Database indexes1 technologyA structure kept in step with a table that lets the database find matching rows without reading the whole table, paid for on every write.
- LSM trees1 technologyA storage structure that buffers writes in a sorted in-memory table, flushes them to immutable sorted files and merges those files in the background, trading extra reads and rewrites later for fast, sequential writes now.
- Unbounded queriesA query with no time range, no partition key and no LIMIT, whose cost grows with every row ever stored.
Technologies
Grouped by the concept each one mainly implementsCommonly confused
Key-value, document or wide-column?Key-value stores · Document databases · Wide-column storesEAV, JSON column, wide table or document?Entity-attribute-value (EAV) · Emergent schema (JSON columns) · Wide tables · Document databasesCache or database?Caching · Relational databasesIn-process cache, shared cache or CDN?In-process caches · Caching · CDNs
See it in a real stack
Architectures that use databases conceptsSmall lakehouse on DuckLakeDuckDB writes and queries tables whose catalog lives in PostgreSQL and whose data sits as Parquet on S3.DuckDBDuckLakePostgreSQLAmazon S3Serverless web app on AWSCloudFront serves the site from S3 and sends API calls through API Gateway to Lambda functions backed by DynamoDB.Amazon CloudFrontAmazon S3Amazon API GatewayAWS LambdaAmazon DynamoDBWeb app on KubernetesA load balancer spreads requests over app pods on Kubernetes, which check Redis before going to PostgreSQL.AWS Application Load BalancerKubernetesRedisPostgreSQLEvent-driven order processingCheckout publishes one event to Kafka; payments, inventory and email each consume it at their own pace.Apache KafkaPostgreSQLAWS LambdaCQRS with a static read sideCommands update PostgreSQL; a Lambda projector rewrites the affected JSON views in S3, and CloudFront serves every read without touching a database.Amazon API GatewayAWS LambdaPostgreSQLAmazon SQSAmazon S3Amazon CloudFrontIoT telemetry pipelineDevices stream readings into Kinesis; Lambda writes them to TimescaleDB for Grafana, and raw data is archived to S3.Amazon Kinesis Data StreamsAWS LambdaTimescaleDBAmazon S3GrafanaGraphQL API in PythonUvicorn runs a FastAPI app that mounts Strawberry’s GraphQL router; graphql-core parses, validates and executes each query, and resolvers load rows through SQLAlchemy from PostgreSQL.FastAPIStrawberry GraphQLGraphQL-corePydanticSQLAlchemyPostgreSQL
Worth exploring
All resources →Article· June 2026Durable Queue Workers With Just PostgresFatih Yildiz (mfyz)Starts with the
FOR UPDATE SKIP LOCKED queue, then shows what to add when a job has several steps: Absurd stores each step’s result in Postgres, so a crashed worker resumes from the last checkpoint. The author calls it a fit for small and medium projects, not high volume.Article· June 2026Making Postgres Queues ScaleQian Li and Peter Kraft, DBOSHow DBOS got its Postgres-backed queues to 30,000 workflows a second:
SKIP LOCKED, the weaker READ COMMITTED isolation unless a queue needs global limits, partial indexes on waiting rows only, and an index that matches the dequeue order. DBOS wrote it about its own product, but the techniques apply to any Postgres queue.Article· April 2026Keeping a Postgres queue healthySimeon Griggs, PlanetScaleWhy a busy queue table fills with dead rows, and how one long query elsewhere can stop vacuum from cleaning them up and slow every dequeue. The diagnosis applies to any Postgres; the fix it ends on, Traffic Control, exists only on PlanetScale.
Slides· September 2025How and Why Datadog moved from cloud-managed to self-managed PostgresNick Canzoneri, Datadog, at PGConf NYC 2025Slides from a talk on why a company running hundreds of Postgres clusters across several clouds left managed services for its own Postgres platform on Kubernetes, how it moved a whole region, and what got better and worse. The stack is Patroni (with ZooKeeper for leader election), WAL-G backups, a Helm chart rather than an operator, and Temporal workflows for automation. Useful before you weigh RDS-style convenience against running Postgres yourself.
Article· November 2024Kubernetes for databases: weighing the pros and consKate Obiidykhata, Percona, on the CNCF blog (first published on The New Stack)A short, high-level overview of why companies move databases onto Kubernetes (one platform across clouds and data centres, self-service, scaling, built-in failover) and the three ways to get there: a cloud DBaaS, a private DBaaS product, or an internal platform built from operators and monitoring. There is no technical depth or data. It is a CNCF member post by a Percona employee and ends by recommending Percona Everest, so read it as a vendor’s framing of the choice.
Video· April 2022Queues in PostgreSQLThomas Munro, PostgreSQL committer, at Citus Con 2022A Postgres developer walks through what queue-like workloads do inside the database, and the complications of using Postgres as a job or message queue.
WebsiteDB-EnginesDB-Engines, provided by Redgate SoftwareA directory of hundreds of database systems with their data models, licences and features, which you can compare side by side. Its monthly ranking measures popularity (search results, Google Trends, Stack Overflow questions, job ads, LinkedIn profiles, posts on X), not quality or speed.
WebsiteThe Umbra Database SystemThomas Neumann’s group, Technical University of MunichThe research site for Umbra, the successor to HyPer and the basis of CedarDB: a feature overview and the full publication list with PDFs, from the CIDR 2020 paper “Umbra: A Disk-Based System with In-Memory Performance” onwards. You can try queries in the browser or pull a Docker image, but its terms allow only evaluation, not production use.
Benchmarks
How to read a benchmark →Benchmark · ClickHouse Inc.ClickBenchHow fast analytical databases run 43 SQL queries over one 100-million-row table of web analytics events, on the same cloud machines.32 systems in this catalog · 7 caveats to read firstBenchmark · Tiger Data (formerly Timescale)Time Series Benchmark Suite (TSBS)A Go toolkit that generates synthetic server-monitoring or IoT time series, bulk-loads it into a database and times a fixed set of time-series queries.7 systems in this catalog · 6 caveats to read first














