Client Design

FoundationDB supports language bindings for application development using the ordered key-value store. The following documents cover use of the bindings, from getting started and design principles to best practices and data modeling. The latest changes are detailed in Release Notes.

  • Getting Started on macOS explains how to install a local FoundationDB server suitable for development on macOS.

  • Getting Started on Linux explains how to install a local FoundationDB server suitable for development on Linux.

  • Downloads describes the FoundationDB packages available on our website.

  • Developer Guide explains principles of application development applicable across all language bindings.

  • Data Modeling explains recommended techniques for representing application data in the key-value store.

  • Client Testing Explains how one can use workloads to test client code.

  • Using FoundationDB Clients contains information on FoundationDB clients applicable across all language bindings.

  • Transaction Tagging contains information about using transaction tags in your client code to enable targeted transaction throttling.

  • API Version Upgrade Guide contains information about upgrading client code to a new API version.

  • Transaction profiling and analyzing contains information about enabling transaction profiling and analyzing.

  • Known Limitations describes both long-term design limitations of FoundationDB and short-term limitations applicable to the current version.

  • Tenants describes the use of the tenants feature to define named transaction domains.

  • Automatic Idempotency describes the use of a transaction option to prevent transactions from failing with commit_unknown_result.