The five-question brief
- 01What must the system answer quickly?
- 02Which writes must never be partially applied?
- 03How large and uneven can the workload become?
- 04What happens when a region or node disappears?
- 05Who will operate this at 3 a.m.?
Field manual / 01
Practical guides and decision tools for selecting, modeling, and operating databases without vendor noise.
Selection notes
Strong starting point
A durable default for applications that need transactions, relationships, and flexible querying.
See the comparison →Choose
Every database is a bundle of tradeoffs. Describe the shape of the work before comparing feature lists.
For many products, a relational database covers transactions, reporting, JSON, search extensions, and geospatial work well enough to start.
Complexity is a cost. Make it earn its place.Comparison plate / 02
Database categories describe how information is organized and which questions are cheap to answer. Products often span more than one family.
| Family | Good fit | Core model | Examples |
|---|---|---|---|
| Relational | Orders, accounts, core business data | Rows + relationships | PostgreSQL, MySQL |
| Document | Flexible records, content, catalogs | JSON-like documents | MongoDB, Couchbase |
| Key-value | Caching, sessions, fast lookups | Keys + values | Redis, DynamoDB |
| Columnar | Analytics, telemetry, reporting | Columns + partitions | ClickHouse, BigQuery |
| Search | Full-text discovery, relevance | Inverted index | Elasticsearch, Typesense |
| Graph | Fraud, networks, dependencies | Nodes + edges | Neo4j, Neptune |
Not a leaderboard. Product examples are reference points, not endorsements. Validate current capabilities, pricing, and operational fit before committing.
Design
A good schema makes valid changes straightforward, invalid states difficult, and common questions inexpensive.
Start with business meaning. Decide ownership, cardinality, optionality, and what deletion should do before drawing tables.
List critical reads and writes with expected frequency, latency, and result size. Index from evidence, not instinct.
GET orders WHERE customer_id = ? ORDER BY created_at DESCPrefer reversible migrations, observable rollouts, and explicit compatibility windows. Data outlives most application code.
Split systems when workloads, ownership, scale, or failure boundaries clearly differ. Every additional store creates coordination work.
Operate
The design is incomplete until recovery, observability, ownership, and cost are part of the plan.
Automated, encrypted, and tested with real restores.
Latency, errors, saturation, replication, and slow queries.
Headroom for peaks, growth, maintenance, and failure.
Least privilege, rotation, auditability, and network boundaries.
A named team, documented runbooks, and escalation paths.
Storage, compute, transfer, licenses, and human operations.
Field notes / Updated continuously
Replace the false binary with a workload brief.
Read field note →Understand what each index accelerates and what it costs.
Read field note →Turn recovery objectives into a routine, testable process.
Read field note →The database briefing