Just as one tiny counterpoint, the company I work for [0] builds a database written in Zig, not C. We implemented our own consensus using Viewstamped Replication [1], not Raft. And we built our own storage engine on LSM trees rather than use RocksDB [2].
A lot of this we built ourselves so we can do FoundationDB-style deterministic testing [3] of the entire system which would not be possible with off-the-shelf libraries because they are not deterministic.
Another goal was to not allocate memory after startup. A goal that most third party libraries would disrupt.
Sometimes the boring options do not further the technical goals of your project. :)
Ah, I think this is actually a very interesting example. My understanding is that TigerBeetle started its development under the company Coil, and was eventually spun out to its own company. I think this post my almost be directly speaking to Coil's decision to fund an in-house, specialized, database project written in Zig.
More power to you guys for actually getting to work on such a fun project, but I wonder if that was a poor decision on Coil's part, as reflected by their eventual decision to jettison that part of their tech?
A lot of this we built ourselves so we can do FoundationDB-style deterministic testing [3] of the entire system which would not be possible with off-the-shelf libraries because they are not deterministic.
Another goal was to not allocate memory after startup. A goal that most third party libraries would disrupt.
Sometimes the boring options do not further the technical goals of your project. :)
[0] https://github.com/tigerbeetledb/tigerbeetle
[1] https://pmg.csail.mit.edu/vr/liskov12vr-abstract.html
[2] http://rocksdb.org/
[3] https://apple.github.io/foundationdb/testing.html