Release Notes

FoundationDB Alpha 5

Language support

  • FoundationDB now supports Ruby
  • FoundationDB now supports Node.js
  • FoundationDB now supports Java and other JVM languages.


  • A new backup system allows scheduled backups of a snapshot of the FoundationDB database to an external filesystem.
  • Integrated HTML documentation
  • Snapshot reads allow API clients to selectively relax FoundationDB’s strong isolation guarantee. Appropriate use can of them can reduce Conflict ranges but makes reasoning about concurrency harder.
  • Streaming modes allow API clients to adjust how FoundationDB transfers data for range reads for improved performance.
  • Client APIs automatically detect the appropriate network interface (local address) when connecting to a cluster, and will look for a Default cluster file.


  • Tuples encoded with prior alpha versions are incompatible with the tuple layer in Alpha 5.
  • Databases created with Alpha 4 will be compatible. (See Upgrading from older versions for upgrade instructions)
  • Databases created before Alpha 4 will be incompatible. (See Upgrading from older versions for details)

Changes to all APIs

  • The API version has been updated to 14.
  • Snapshot reads (see Features, above).
  • Streaming modes (see Features, above).
  • Automatic network interface detection (see Features, above).
  • The tuple layer supports unicode strings (encoded as UTF-8), has a more compact encoding, and is not compatible with data from prior versions.
  • Reversed range reads are now exposed through a separate parameter rather than via a negative limit.
  • Extensible options are now exposed at the network, cluster, database and transaction levels. The parameters to fdb_setup_network() and fdb.init() have been replaced by network options.
  • Option enumerations are available in a machine-readable format for the benefit of third-party language binding developers.

Python API changes

  • can be called with no parameters to use the Default cluster file.
  • Waiting on a Future object has changed from .get() to .wait()
  • Reversed range reads can by specified by passing a slice object with a -1 step.
  • The convenience read methods on fdb.Database are now transactional.

C API changes