foundationdb
FoundationDB - the open source, distributed, transactional key-value store
An open-source distributed database from Apple that delivers full ACID transactions across a cluster of servers, the same reliability guarantees as a single-server database but at distributed scale.
FoundationDB is an open-source distributed database released by Apple. It stores data as an ordered key-value store (imagine a giant sorted dictionary where each entry has a key and a value) and is designed to run across clusters of multiple servers, handling large volumes of structured data reliably.
Its defining characteristic is full ACID transactions across the entire distributed cluster. ACID (Atomicity, Consistency, Isolation, Durability) is a set of guarantees that ensure database operations either complete fully or not at all, data stays valid, concurrent operations don't interfere with each other, and committed data persists through crashes. Most distributed databases compromise on some of these guarantees for speed; FoundationDB does not.
It is particularly well-suited for read-heavy and write-intensive workloads. Applications talk to it through official API bindings in various programming languages rather than a query language like SQL. This architecture lets you build higher-level data models on top of the key-value primitives while retaining strong consistency guarantees.
FoundationDB is written primarily in C++ and uses a simulation-based testing approach — meaning it runs simulated versions of hardware failures, network partitions, and other failure scenarios to validate correctness before any code ships. You would use FoundationDB as the reliable data layer underneath a larger system when you need both distributed scalability and strict transactional consistency. The full README is longer than what was provided.
Where it fits
- Use as the reliable data layer for a distributed app that needs ACID transactions at scale.
- Store large volumes of structured data across multiple servers with no single point of failure.
- Build higher-level data models like a document or graph store on top of FoundationDB key-value primitives.
- Test distributed systems correctness using FoundationDB's simulation-based fault injection approach.