Apple's FoundationDB goes open source
Apple has open-sourced FoundationDB, in the hopes that it will become the "foundation of the next generation of distributed databases".
FoundationDB is a distributed database that's specifically designed to cope with large volumes of structured data across different clusters of servers. It's what Apple uses to sync and store data for iCloud.
Now, individuals and companies can use it for their backend systems, to help speed up projects and make them less expensive to maintain.
This move, which was announced last month, is part of a concerted open source campaign by Apple that began in December 2015, when it made its Swift programming language open source under the Apache license. This enabled Swift to expand beyond iOS and Mac OS X by giving developers the freedom to use the language on a variety of different platforms, including Windows.
A few months later, in February 2016, Apple released its Benchmarking code suite as open source, to help developers to create faster, more efficient code.
Other significant open source projects released by Apple include the Darwin operating system, on which macOS and iOS are based, the XNU Kernel and WebKit.
And now it's FoundationDB's turn.
Development in the open
Apple acquired FoundationDB shortly after the company's cloud services suffered the worst outage in its history, with users across the globe unable to access the App Store, iBooks, iCloud and iTunes for more than eight hours. The company blamed the outage on a DNS error.
The acquisition of FoundationDB to help with its increasingly complex cloud services was criticised by some for taking what had been regarded as a useful tool off the market, leaving companies that had been using the software for several years (FoundationDB was developed in 2009) without support.
Now, a post on the newly established FoundationDB blog explained Apple's reasons for releasing FoundationDB under the Apache 2.0 license as an attempt 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."
Acknowledging that FoundationDB is already a well-established distributed database that supports fully global, cross-row ACID transactions, the highest level of data consistency possible, FoundationDB hopes to drive it forward as a community project.
The vision of FoundationDB is to start with a simple, powerful core and extend it through the addition of "layers", with the core focused on incorporating only features that aren't possible to write in layers. Layers, however, extend the core by adding features to model specific types of data and handle their access patterns.
"By open sourcing the FoundationDB core, we expect the quantity and variety of layers to develop rapidly," Apple explained.
In terms of what this means for users, FoundationDB will make application code simpler, data models more efficient, and failure modes less surprising.
The source for FoundationDB is available at https://github.com/apple/foundationdb/.