We’ve had on the order of 3 memory bugs in 6 years of TigerBeetle. None RCEs.
On the other hand, our own simulators have proactively found hundreds of (devastatingly catastrophic) distributed systems correctness bugs per year.
Given how hard TigerBeetle’s domain is, in terms of mission critical financial transaction processing, I’ve never for one minute believed that writing TB in a memory safe language such as say TypeScript would somehow magically (!) make any material impact compared to the 100x correctness multiplier of TigerStyle.
That’s because—rather than fall for the fallacy of composition, i.e. to see distributed correctness as a language problem—TigerStyle instead takes ultimate responsibility for the “end to end” correctness of the distributed system as a whole.
Per systems engineering, correctness is always a systems design problem. For example, how to build a reliable whole, (especially) out of unreliable parts, such as broken firmware, bitrot, programmer error etc. In other words, application of the end to end principle.
But when you TigerStyle the design in this way, the world of systems engineering also completely opens up to you and changes how you evaluate systems languages (now things like “power to grammar ratio”, or explicitness, checked arithmetic and precision become more critical and valuable to you).
Of course, it is harder to care about correctness, to take responsibility for correctness end to end.
Yes, you’re forced to begin to worry about the more serious concerns, starting with the basics of static allocation, explicit limits, assertions, deterministic simulation testing and moving to more advanced topics like protocol-awareness and storage fault-tolerance.
But then again, TigerStyle is such a force multiplier, that you achieve mission critical quality, and in less time and with greater velocity.
If you’re tired of production issues, and if you want to “engineer your engineering”, I would encourage you to lift up your thinking to the level of systems design and end to end correctness.
Start thinking about your methodology and begin embracing TigerStyle.
https://t.co/fgtyNCO7SE
The architecture of a database is invisible.
But it’s possible to make it visible with vision, creativity, and some storytelling.
I love the joy, craft, and art our team at @TigerBeetleDB put into making the invisible visible
Making deeply technical concepts approachable and beautiful ❤️🔥
Jens @axboe put Linux in the fast lane with io_uring.
His son Jonas takes the need for speed to the track.
And TigerBeetle is proud to partner.
Catch Jonas at Sebring this weekend for the Radical Cup North America season opener!
In a world of ever increasing AI slop where some people don't even read the code they crank out, this takes you back to proper engineering. Refreshing!
https://t.co/zczCRqh6sA
A new, visual home for TigerStyle -- the software engineering methodology developed by TigerBeetle to produce safer, faster software in less time.
"Do the hard thing today to make tomorrow easy."
"If you want to be remembered, be remarkable."
At the @TigerBeetleDB 1000x World Tour event in Munich, @captainhorst presented "The Making of the Racer" and I gave a talk on "Taming TigerBeetle's Distributed Tail Latency" (a sequel to my P99 talk). The crowd was fantastic, and we both had so much fun!
Database System development will make you realise that 1 millisecond is actually a really really really long time
~300 tx/ms TigerBeetle vs 1 tx/ms PostgreSQL
https://t.co/p8IXExzLIu
Happy with this little hover effect we made.
Fun fact: each globe and its cities is drawn using only a single triangle, no extra geometry and no three.js needed. #WebGL