Our take
- Activity
- 76
- Community
- 93
- Issues
- 21
- Pull requests
- 63
+42 stars in the last 16 days
- Merges more pull requests than 92% of the projects we track
- More contributors than 77% of the projects we track
Overview
FoundationDB stores structured data in an ordered key-value format across distributed clusters. It applies ACID transactions to all operations, addressing the challenge of keeping reads and writes consistent while data is distributed across servers.
It is intended for applications that need a transactional storage foundation rather than a database tied to one data model. Users access it through language bindings, and the project provides documentation, release binaries, and source build instructions on its official site and GitHub repository.
Key Features
- Distributed storage across clusters of commodity servers.
- Ordered key-value data model for structured data.
- ACID transactions for all operations.
- Designed for read/write workloads, with support for write-intensive workloads.
- Language bindings for application integration.
- Simulation and real-cluster testing are part of validation for production releases.
Use Cases
- Build a backend for applications whose operations need transactional consistency across distributed data.
- Store structured data as ordered keys and values when applications need to control their own data model.
- Support read/write workloads across a cluster without relying on a single server.
- Evaluate a transactional key-value foundation for a service that has write-intensive data needs.
Getting Started
For application use, download a binary package from the releases page. For build and setup details, see the README and official documentation.
Alternatives
- tidesdb: TidesDB provides transactional key-value storage as an embeddable engine, rather than a distributed database service.
- TigerBeetle: TigerBeetle targets financial ledgers with specialized debit and credit primitives, rather than general-purpose ordered key-value data.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| foundationdb | C++ | Apache-2.0 | 16.7k | Not checked yet |
| tidesdb | C | MPL-2.0 | 602 | Active |
| tigerbeetle | Zig | Apache-2.0 | 17.2k | Active |
Considerations
- FoundationDB is a database component, so using it requires an application and operational setup around the database.
- Building from source has substantial dependency requirements. The project recommends its official Docker build image, and notes that a build needs at least 8 GB of memory.
- The README identifies 7.3 as the supported release branch. Other listed branches have experimental, bug-fix-only, or unsupported status, so check the release guidance before choosing a version for production.
Found this useful?
Share it with someone who would like foundationdb.