Hacker News new | ask | show | jobs
by eatonphil 1344 days ago
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. :)

[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

3 comments

Agreed. Though not strictly a counterpoint. I do enjoy novelty (and benefit from it). I just want the right amount of it
That is not a counterpoint. If you said your choices did not have any cost or risk compared to the “boring” choice, that would be a counterpoint.
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?