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.
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.
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.
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 ..