Unbundling Databases
Summary: The “database-inside-out” approach where database components (like indexes and materialized views) are decomposed into separate services connected by dataflow.
Sources: chapter12
Last updated: 2026-04-18
Unbundling databases is a design pattern that treats the various functions of a database—storage, indexing, and query processing—as separate components that can be composed using application code. This is also referred to as the “database-inside-out” approach (source: chapter12).
Key Concepts
- Database-Inside-Out: Instead of a single integrated database product, the system is built from diverse components (e.g., an OLTP database for writes, a search index for full-text search, and a cache for performance) that are kept in sync via an asynchronous event log.
- Dataflow as Derivation: Indexes and materialized views are treated as derived datasets. When the source data changes, the changes flow through a pipeline to update all derived representations (source: chapter12).
- Unix Philosophy: Similar to how Unix tools are composed with pipes, unbundled components communicate through a uniform low-level API (event logs) and can be composed to build complex systems.
Integrated vs. Unbundled
Traditional integrated databases provide a high-level abstraction (SQL) that hides implementation details like concurrency control and recovery. While convenient, they often struggle with specialized workloads (e.g., full-text search or graph queries) that a single engine cannot handle optimally. Unbundling allows for breadth, enabling the use of the best tool for each specific access pattern (source: chapter12).