In two weeks since open sourcing FoundationDB, we've had an outpouring of interest.
Over 100 new topics have been opened on the community forums, 7400+ developers have starred the project on GitHub, and we've seen numerous code contributions from developers who are exploring FoundationDB for the first time. Thank you to all who have installed FoundationDB, contributed, and engaged in our community.
Coinciding with the release announcement, several long-time adopters have also blogged about their experiences with the project, including Wavefront and Snowflake:
- Wavefront by VMware’s Ongoing Commitment to the FoundationDB Open Source Project
- How FoundationDB Powers Snowflake Metadata Forward
We believe in, and want to build a strong community to help support and develop the project. We're thrilled by this early participation.
Early activity in the ecosystem
FoundationDB is a multi-model system, enabling different layers to extend the core key-value store for different uses. One of the things we're most excited to see is development outside of the core, with the community extending the project in new ways.
Since the initial open source release, we've seen several community-driven projects emerge. Here are a few worth checking out:
- JanusGraph is a distributed graph database. The development of a storage adapter enables it to be used with FoundationDB. See the forum post for more info.
- Two projects to implement a network block device, one in Python, the other in Java.
- Node.JS https://github.com/josephg/node-foundationdb
- PHP https://github.com/viest/PHP-FoundationDB
- C# / .NET bindings https://github.com/Doxense/foundationdb-dotnet-client
- Haskell https://github.com/thumphries/foundation
This is only the beginning, and we can't wait to see what you build with FoundationDB! Be sure to share your experience on the community forums.
Lastly, thank you to all who have contributed to the FoundationDB core and already had your code merged into the master branch the past two weeks: A.J. Beamon, Alec Grieser, Alex Miller, Alexander Lagerström, Alvin Moore, Amanda Aizuss, Ben Halverson, Bruce Mitchener, Chr1st0ph, Dave Lester, Dennis Schafroth, Douglas Daniels, Evan Tschannen, Hiroshi Saito, Iuri Sitinschi, John Brownlee, Martin Junker, Matias Insaurralde, Semih Tok, Steve Malmskog, Umar Farouk Umar, Vince Polsinelli, Yichi Chiang, naru-jpn, tracebundy, and xtreak.
Contributions are welcome! For more information on getting involved, please see our contributors guide.
The next chapter
Starting today, FoundationDB starts its next chapter as an open source project!
FoundationDB is a distributed datastore, designed from the ground up to be deployed on clusters of commodity hardware. These clusters scale well as you add machines, automatically heal from hardware failures, and have a simple API. The key-value store supports fully global, cross-row ACID transactions. That's the highest level of data consistency possible. What does this mean for you? Strong consistency makes your application code simpler, your data models more efficient, and your failure modes less surprising.
The great thing is that FoundationDB is already well-established — it's actively developed and has years of production use. We intend to drive FoundationDB forward as a community project and we welcome your participation.
A powerful abstraction
We believe FoundationDB can become the foundation of the next generation of distributed databases. Since its beginnings in 2010 as a startup, the world of databases has increasingly aligned with FoundationDB to favor data consistency.
The vision of FoundationDB is to start with a simple, powerful core and extend it through the addition of “layers”. The key-value store, which is open sourced today, is the core, focused on incorporating only features that aren’t possible to write in layers. Layers extend that core by adding features to model specific types of data and handle their access patterns.
The fundamental architecture of FoundationDB, including its use of layers, promotes the best practices of scalable and manageable systems. By running multiple layers on a single cluster (for example a document store layer and a graph layer), you can match your specific applications to the best data model. Running less infrastructure reduces your organization's operational and technical overhead.
By open sourcing the FoundationDB core, we expect the quantity and variety of layers to develop rapidly. When we think about the FoundationDB community, we approach it both in terms of the core itself and the ecosystem of layers that it enables.
Building an Open Community
By open sourcing FoundationDB, our goal is to build an open community. All major development will be done in the open. We’ve outlined a design document process to ensure that this work is done transparently and with community input. We’ve taken early steps to outline project governance to provide a basic structure that will enable members of the community who actively contribute to have a greater voice in the project decision-making.
We also want FoundationDB to be a healthy and responsive community. To that end, we’ve adopted a code of conduct based on the Contributor Covenant to outline the behaviors we encourage and those we disallow.
We’d love your participation. Here are several ways you can get involved:
- Ask questions on the FoundationDB community forums: forums.foundationdb.org. We have categories for user-related questions (how do I use X) as well as development questions (I am digging into the FoundationDB core and want to change Y). Say hello!
- Help improve the software by reporting bugs through GitHub issues.
- Make contributions to the core software and documentation (please see the project’s contribution guide).
The source for FoundationDB is available at github.com/apple/foundationdb.
Please see the Getting Started guide for the basics of how to install, use, and develop against FoundationDB. Binary installers are available for macOS, Windows, and Linux at www.foundationdb.org/download/.