apple

foundationdb: Store Data Reliably Across Distributed Clusters

FoundationDB is a distributed ordered key-value database with ACID transactions, built for structured data across clusters of commodity servers. It suits applications that need transactional correctness and flexible language bindings.

Stars
16.7k
Forks
1.6k
Stars, last 16 days
+42

Our take

Health score

63/100

How it is scored
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.
ProjectLanguageLicenseStarsStatus
foundationdbC++Apache-2.016.7kNot checked yet
tidesdbCMPL-2.0602Active
tigerbeetleZigApache-2.017.2kActive

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.

Comparisons