Apple has open-sourced FoundationDB, the NoSQL database it bought back in 2015. The goal? Building an open community that will allow FoundationDB to become “the foundation of the next generation of distributed databases.”
For those unfamiliar with it, FoundationDB is a distributed database designed to cope with large amounts of structured data across different clusters of servers. Apple uses it to sync and store data for iCloud.
Making its services better for users
As FoundationDB explains in a blog post:
“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.”
In terms of what this means for users, FoundationDB notes that it will make application code simpler, data models more efficient, and failure modes less surprising. A demo of FoundationDB’s technology can be seen below:
https://www.youtube.com/watch?v=oLGYMdo2q2g
“The great thing is that FoundationDB is already well-established — it’s actively developed and has years of production use,” it continues. “We intend to drive FoundationDB forward as a community project and we welcome your participation.”
Improving Apple’s cloud services
Apple acquired FoundationDB to help with its increasingly important cloud services. The acquisition came shortly after Apple’s cloud services suffered the worst outage in their history.
The newly open-source FoundationDB code is available on GitHub.