How FoundationDB works and why it works

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • Permazen

    Language-Natural Persistence Layer for Java

  • An obvious question you face when deploying something like FDB is how to write your app on top of it. With FDB it's like RocksDB. You get a transactional key/value store, but that's a very low level interface for apps to work with.

    FDB provides "layers", such as the Record layer. It helps map data to keys and values. But a more sophisticated solution that I sometimes wish would take off is this library:

    https://permazen.io/

    It's a small(ish) open source project that implements an ORM-like API but significantly cleaned up, and it can run on any K/V backend. There's an FDB plugin for it, so you can connect your app directly to an FDB cluster using it. And with that you get built-in indexing, derived data, triggers, you can do queries using the Java collections API, there's a CLI, there's an API for making GUIs and everything else you might need for a business CRUD app. It's got a paper of its own and is quite impressive.

    There are a few big gaps vs an RDBMS though:

    1. There's no query planner. You write your own plans by using functional maps/filters/folds etc in regular Java (or Kotlin or Python or any other language that can run on the JVM).

    2. It's weak on analytics, because there's no access control and the ad-hoc query language is less convenient than SQL.

    3. There's no network protocol other than FDB itself, which assumes low latency networks. So if there's a big distance between the user generating the queries and the servers, you have a problem and will need to introduce an app specific protocol (or move the code).

  • foundationdb

    FoundationDB - the open source, distributed, transactional key-value store

  • > Any meaningful technology is open source.

    Clearly untrue, however FoundationDB is open source, with a permissive license.

    https://github.com/apple/foundationdb

    So is much of the operational tooling for it:

    https://github.com/FoundationDB/fdb-kubernetes-operator

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • fdb-kubernetes-operator

    A kubernetes operator for FoundationDB

  • > Any meaningful technology is open source.

    Clearly untrue, however FoundationDB is open source, with a permissive license.

    https://github.com/apple/foundationdb

    So is much of the operational tooling for it:

    https://github.com/FoundationDB/fdb-kubernetes-operator

  • awesome-foundationdb

    List of FoundationDB resources

  • All I could find is https://github.com/FoundationDB/awesome-foundationdb#layers - not sure how complete and up-to-date that list is.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts