Thanks!
The paper “Protocol-Aware Recovery for Consensus-Based Storage” is orthogonal to choice of state machine, since it's at the consensus/storage engine layer underneath. So custom state machines benefit from this.
While I love C, and while C was the other choice for TigerBeetle, I wanted to pick a modern systems language to invest in for the next 30 years. There are several advances in Zig around safety: bounds checking, checked arithmetic, error handling, better tooling, cross-compilation, comptime, enforcing memory alignment through the type system, ability to handle memory allocation failure etc.
The big difference compared to Postgres is that TigerBeetle has better performance for the domain (TB can be far more aggressive with group commit since financial transactions in TB are only 128 bytes), a stricter storage fault model, and is a distributed database with automated leader election and fault tolerance. TigerBeetle is also designed to be deterministically simulated, like FoundationDB, so we can test to a high standard. For example, by injecting the theoretical limit (in terms of the consensus protocol) of corruption on all machines, including the leader, and then test that TigerBeetle self-heals.