Improving (Perceived) Complexity

Full disclosure, we (Wavefront) started using FoundationDB (before Apple acquired it) around 2014, and I believe it is one of the foundational piece of technology that allowed us to scale to the moon and back. It pains me that the perceived complexity of the project is still rather high after the project becoming open-source in 2018.

Someone pointed me to this article:

Freedium Link

As an open-source project, I can understand how a newcomer would feel a sense of “Where do I begin?” given the “scattered-ness” of documentation, talks, videos, PDFs, etc., that one would need to read (and figure out if they are still correct/relevant). You want the documentation for the Redwood Storage Engine, you need to find a recorded talk. Is RocksDB production ready? When and why should you use it? Maybe you need to talk to someone at a meet-up next time (if you are in San Jose, that is). Is rangeconfig usable yet? Maybe try it in your dev cluster and see?

It’s not too surprising that when you look at something like https://neon.com/ (also open-source), there’s a general feeling that the developer experience would be great (no less of which it gives you testimonials and big logos using it).

The fact that the project is seen as not having a mature ecosystem, that it’s only feasible for early adopters, that it is not battle-tested in production, that it is still a young project is simply not true, but at the same time, a lot of the counter-arguments are in people’s heads, and not spelled out in writing and/or organized in a digestible fashion (the academia-ness of the docs per the blog).

Given that there are significant resources behind improving FoundationDB and the planet-scale demonstrations of its scale and resiliency, I think the community (or concerned citizens?) can help with the DevEx of the project to help make it feel a bit more loved.

1 Like

Like this literally should not happen: How to actually use FDB OpenTelemetry tracing?

There needs to be a better way than people banging their heads against a wall for hours, come to the forums, and to be told that something wasn’t finished yet but is somehow in the codebase to tempt you to try. There needs to be something like a roadmap perhaps so people can know whether something is planned, coming soon, stalled (help wanted), or shipped.

And only by happenstance that I found: GitHub - deepseek-ai/3FS: A high-performance distributed file system designed to address the challenges of AI training and inference workloads. which mentions that the metadata layer is built on FoundationDB. Any other project would have had a banner on the top of the website that mentions it with a link to the blog on how it was used. :slight_smile:

This is one of the biggest problems I faced when adopting FoundationDB. Many features have no documentation, sometimes do not work as they are superseded or are experimental and abandoned.

I feel like the best course of action right now would be to create a separate community repository for user-created documentation and guides.

The way I process the status quo is the following:
FoundationDB is a great complex distributed DB that is used by large corporations that use it internally and allocate human capital to operate it as a platform.

These companies pick it DESPITE the horrible dev Experience and operational burden.

The development of FoundationDB happens behind close doors, the large corps that use it successfully run their own internal forks and probably have multiple teams working on different dimentions of the problem of running and operating deployments of FoundationDB.

You can’t compile it without compilers and SDKs for +5 programming languages, there aren’t even published containers for Linux/arm64 (which is needed even for macOS dev-experience)

It is truly a PITA to operate… There isn’t any economic incentive for this to improve. the current status quo is okay-ish for the large users.

What I don’t know is why Apple continues to maintain/develop this in semi-open format ..