8 ms·
TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
https://www.synadia.com/blog/synadia-tigerbeetle-zig-foundation-pledge https://www.synadia.com/blog/synadia-tigerbeetle-zig-foundat...
- tm11zz 1y ago> We run a fuzzing fleet of 1,000 dedicated CPU cores 24/7. that a lot
- tazjin 1y agoAssuming they're being economical (and considering the level of thinking TigerBeetle seems to put into stuff - they probably are) this might be only a few beefy physical servers. For them it seems safety and QA is a large part of the sales pitch, so that seems worth it.
- jorangreef 1y agoThanks! It's around 21 boxes, 48 cores each [1], and in Finland so there's natural efficient cooling. Fun fact, Hetzner were surprised at the size of the order, and sent us an email to confirm. ;P [1] https://x.com/TigerBeetleDB/status/1841089728935821674/quotes https://x.com/TigerBeetleDB/status/1841089728935821674/quote...
- femiagbabiaka 1y agoThe principle of crashing on application violation makes it worth it I’d guess
- praveenperera 1y agoAre you guys using Zig?, love NATS by the way.
- derekcollison 1y agoWe are waiting on the IO abstraction for a supported Zig client (There are others though today), but this is specifically for a new initiative at Synadia that we will share more details about soon!
- dangoodmanUT 1y ago> For each of our companies to donate $256,000 in monthly installments over the next two years, with Synadia matching TigerBeetle, for a total of $512,000 Why over 2 years? Like VC investment, Id assume a lump sum up front allow them to move faster with that money (hiring the right people sooner, etc.) I wonder if projects like this care more about predictability of income (e.g. not hiring people depending on future funding to sustain them)
- codegladiator 1y agoThere is always a burden of deployment of assets
- mikkupikku 1y agoSlow is smooth. Smooth is fast.
- gethly 1y agoI heard that very recently in a movie, just cannot recall which one.
- elthor89 1y agoIs nats not written in go? Or does this foreshadow a switch to zig?
- galangalalgol 1y agoThey have clients in many languages. But the zig repo is still just a placeholder. They often have bare bones servers in the languages too, like rust has one, but I think they are mostly for testing.
- lukaslalinsky 1y agoI'll shamelessly plug this. I think this is the most complete NATS client for Zig, matching the official clients in API and features: https://github.com/lalinsky/nats.zig https://github.com/lalinsky/nats.zig In fact, working on this client prompted me to start working on another Zig project, asynchronous I/O framework, which I'll be integrating with the NATS client soon: https://github.com/lalinsky/zio https://github.com/lalinsky/zio
- magicalhippo 1y agoThe Synadia story posted here[1]. [1]: https://news.ycombinator.com/item?id=45703716 https://news.ycombinator.com/item?id=45703716
- dang 1y ago(we've since merged that thread into this one)
- drfuchs 1y agoReal programmers would have donated $524,288. But seriously good news nonetheless.
- bryant 1y agoFor those who don't intuitively think in base 2, 2¹⁹ bytes, or 512KiB.
- benatkin 1y agoI'd prefer to express it in hexadecimals, and 1 would be 256 cents. So it would come out to be very slightly more, at 0x00030000.00 hexadollars, or 196608.00 hexadollars, or 50331648 cents – $503,316.48 I may have been looking at the binary year 2038 countdown :D https://retr0.id/stuff/2038/ https://retr0.id/stuff/2038/
- ncruces 1y agoYou can chip in remainder in soft monthly installments of $512 over two years.
- drfuchs 1y agoIndeed. Take a gander at the last screenful of ziglang.org
- jorangreef 1y agoWe had to leave some room at the top for SpiralDB and ZML to get to the next power of two, or they'd have to raise the exponent. ;P
- jorangreef 1y agoJoran from TigerBeetle here! Zig has changed my life, and our team, by making TigerBeetle possible. It's been an incredible journey these past 5 years, and excited that we can now pay it back (and forward!) to the Zig Software Foundation, also matching with my friend Derek Collison and Synadia in doing so. Thanks to Andrew for creating something beautifully special for the world in Zig, and to all the Zig core team and communities. If you don't yet donate to the foundation, please consider doing so: https://ziglang.org/zsf/ https://ziglang.org/zsf/
- dangoodmanUT 1y agoI’d be really curious to know if there have ever been major snags being such an early adopter of a language (relative to comparable language options)?
- jorangreef 1y agoZig has been great. If anything we could merge critical features (e.g. io_uring, @prefetch builtin and others) into Zig in days or hours instead of years. In hindsight, Zig exceeded expectations, and the quality was exceptional to begin with.
- dangoodmanUT 1y agoSomewhat of a tangent - did you ever feed "forced" into io_uring because zig lacked native async io? I know you already pre-allocate, and I guess io_uring is effectively pre-allocating a core to doing io work since you have to spin it
- jorangreef 1y agoRegardless of language, there was never any question that TB would be using io_uring—the interface is that good! If anything, Zig made it easier, bringing all the primitives/atomics I needed to merge io_uring directly into the std lib. Note that io_uring doesn’t require a pre-allocated core for spinning. There are multiple modes. We just use the kernel thread pool, which we prefer to a user space thread pool!
- eggy 1y agoIn performing an assessment of which ecosystem and PL to use to develop our high-integrity automation software for mission-critical applications, we assessed Rust, Zig, and Ada/SPARK. Rust had the support behind it from a big corp., a passionate developer community, and some adoption by significant entities, but none with cyber-physical systems. And it has been interesting to see some developers leaving Rust for Zig for the sheer enjoyment of using it instead. Our software will be controlling machinery overhead and other close coupling with machinery and people. Rust does not have the legacy in these areas or the ecosystem to cover formal verification. Zig was considered, but was even more new than Rust, and had similar disadvantages as listed for Rust. SPARK, a relatively newer PL, a subset of Ada, has legacy in high-integrity, mission-critical applications, and formal verification tooling that along with human review, makes it the strongest choice to meet the government's latest push for such critical software, and the language though verbose, is low friction to learn and apply. I found Zig to be a great second choice, and look forward to both Rust and Zig's future. Glad to see Zig moving along since Andrew started it. Congrats Andrew and the team currently pulling this off!
- 7thaccount 1y agoInteresting to see this. I bought a book on Ada 2012 awhile back. Pretty cool stuff - especially with Spark. The license model always made me uncomfortable for when you were using the commercial compilers though. Does this lock you into Spark forever?
- tayo42 1y ago>leaving Rust for Zig for the sheer enjoyment of using it instead. What do people find more enjoyable?
- meindnoch 1y agoThat's about 1 year's worth of salary of a full-time dev.
- VerminOctopus1 1y agoNo, it’s not.
- trollbridge 1y agoWhere can I get a $512k a year salary job?
- epage 1y agoKeep in mind the rule of thumb that a employee costs twice their salary, so that would be a 206k/year salary. Generous for some, low for others. The salary spread in the US is crazy.
- sgt 1y agoWhere does it say that an employee costs twice their salary? My experience is more like 25-30% more.
- tredre3 1y agoAt these salary levels it might very well be closer to 25%, there's only so much fancy health insurance and 401k matching and other tax/fees you have to cover as an employer. At a more "normal" salary the 1.5-2x figure is pretty accurate in my experience.
- trollbridge 1y agoThere is no universe where overhead is $206k for a $206k employee. Taxes are about 13% employer paid in the worst case. Health insurance is $1500-$2000 a month worse case. The idea an employer has $17,000 in taxes they pay and overhead for an employer is absurd.
- renewiltord 1y ago
- 9front 1y agoThat's a pledge only! Let me know when Synadia & TiregBeetle actually send money to Zig Foundation.
- jorangreef 1y agoJoran from TigerBeetle here! TigerBeetle actually already donated around ~$100K this past year. We just didn't announce it. With revenue increasing, we wanted to increase our donation to the foundation to $128K per year going forward, and Synadia were keen to match. The only reason we announced it this time is to encourage other companies to join us. Finally, as I wrote in TB's post [1], both companies have already donated the first installment, and Derek and I have also both been donating as individual donors in our personal capacity since around 2018. Hope that clears it up for you! :) Please join us and consider donating (or increasing your donation): https://ziglang.org/zsf/ https://ziglang.org/zsf/ [1] https://tigerbeetle.com/blog/2025-10-25-synadia-and-tigerbeetle-pledge-512k-to-the-zig-software-foundation/ https://tigerbeetle.com/blog/2025-10-25-synadia-and-tigerbee...
- 9front 1y agoVery well done, sir! Now you challenged me to make a donation also. However, as an individual I assure you that it won't match yours.
- jorangreef 1y agoThank you, my friend! Let me know when it's done (only so that we can celebrate it together—good faith for the win!).
- 9front 1y agoJust donated $100 to ZSF via ever.org!
- jorangreef 1y agoHigh five!
- renewiltord 1y agoMove Zig. Take off every Zig.
- pixelpoet 1y agoFor great justice.
- jtrueb 1y agoThe reason for not choosing Rust still doesn't make any sense to me. If you don’t want to OOM, need correctness, are following the power of ten (where you aren’t allocating anyways), I don’t see the conflict or harm of additional enforced correctness. Also, Rust does support checked arithmetic and has stable toolchains.
- jorangreef 1y agoOut of interest, did you read the two posts [0][1] linked in there by matklad, creator of rust-analyzer as well as IntelliJ Rust, on our team? Suffice to say, we know the intrusive memory and comptime patterns we use in our code base, and they wouldn't be as natural to express in a language other than Zig. Rust is a great language, but Zig made more sense for what I wanted to create in TigerBeetle. [0] https://matklad.github.io/2023/03/26/zig-and-rust.html https://matklad.github.io/2023/03/26/zig-and-rust.html [1] https://lobste.rs/s/uhtjdz/rust_vs_zig_reality_somewhat_friendly#c_8rtrto https://lobste.rs/s/uhtjdz/rust_vs_zig_reality_somewhat_frie...
- jtrueb 1y agoYeah, I think BDFL wants to use Zig. I understand that it is nice for Zig to feel more like C, and that can be fun. If the toolchain is so far away from being mature, how long will it take the database to be mature? Since previous comment was edited. I would clarify that I don’t doubt the engineering capabilities, just the timeline. A from scratch database in _established_ toolchains take 5-10 years. The Zig toolchain also is going to be evolving in the same timeframe or longer. The codegen, linking, architecture specific bugs etc. Isn’t it double the effort to bring to bear in the market?
- jorangreef 1y agoYou're right! In the past, distributed databases written without Deterministic Simulation Testing (DST) would typically take around ~10 years (~5 years for the consensus protocol and ~5 years for the storage engine). And then not without bugs. However, and we write about this also in the post, but TigerStyle and DST enabled us to ship TigerBeetle to production in 3.5 years, in less time, to a higher standard, and to be the first distributed database with an explicit storage fault model (Kyle Kingsbury added new storage fault injectors to Jepsen) solving Protocol-Aware Recovery. Our Jepsen audit is here (also linked in the post): https://jepsen.io/analyses/tigerbeetle-0.16.11 https://jepsen.io/analyses/tigerbeetle-0.16.11 For more on TigerStyle as a methodology, hope you enjoy this talk: https://www.youtube.com/watch?v=w3WYdYyjek4 https://www.youtube.com/watch?v=w3WYdYyjek4
- lxe 1y agoIs Synadia related to Shazam? The logo is pretty much the same.
- jihadjihad 1y agoI opened Shazam so I could look at the logos side-by-side, and it is indeed pretty odd how alike they are. Even the angle of the shapes is virtually the same. It’s a little OT, but interesting nonetheless.
- lxe 1y agoI'm absolutely struggling to understand what Synadia even does. it's been an infuriating experience navigating through their marketing site. It's been minutes and I still don't understand what it is. What is NATS? Edit: I had to google what NATS.IO is. The marketing site is infuriatingly useless. Please, can we stop doing this? Edit: At the bottom on the footer it says compare NATS to Kafka. It took me to a page that requires me to enter my email, name, and a message in order to download the white paper. I flipped over my desk in rage.
- deleted 1y ago[deleted]
- webdevver 1y agoi asked gemini to investigate on my behalf, and it basically said that Synadia is to NATS what HiveMQ is to MQTT. seems fair enough. thank goodness for llms to spare us the marketing drivel!
- bruth 1y agoUnfortunately the LLM is leading you astray :)
- IshKebab 1y agoI dunno why you're being downvoted. This is a pretty great use of LLMs in my experience. I also used it to tell me what the hell Databricks is. Of course there's a chance it's hallucinating (more likely with this niche thing) but it's not like it's critical information anyway.
- hmans 1y ago[dead]
- bruth 1y ago(disclaimer: I am the VP of Prod/Eng at Synadia) NATS - An application connectivity technology (L7). It was originally designed for low-latency M:N messaging, and that is still true today. In 2018, native multi-tenancy, clustering options, etc. got introduced. The persistence subsystem (JetStream) was introduced in 2021. It has a completely different design than Kafka, but with overlapping use cases. For better or worse, we get compared to Kafka a lot and virtually everyone who engages realizes the advantages and opportunities. NATS is much more flexible for application use cases, for example, it provides KeyValue and ObjectStore abstractions on top of the core persistent stream. There are a plethora of other details, but that is the basic gist. Overall, it has a lot of batteries included for building everything from embedded applications to large scale cloud-to-edge systems. Synadia - The founder (Derek) created NATS. We are the primary maintainers of the project. We build products and services on top of NATS including a global SaaS where you can sign up and use "hosted NATS" with additional features. We offer a BYOC model, one of which we manage for you, or a Kubernetes-based self-service one that you deploy yourself. We also support fully self-hosted for customers that need to run in their own data centers or at the edge. Regarding the comment re: the website, there are improvements we have in the works. Happy to engage and help clarify anything that is confusing.
- grg0 1y agoYeah, that is a lot more insightful than Synadia's marketing spew, thanks. The BDFL point is particularly interesting to me having followed C++ for almost two decades and having been disenfranchised by the inconsistency of the design. I am more of the belief now that a BDFL is the right model for programming language design, particularly one that isn't insular and listens to feedback, but upholds their vision for the language above all else.
- dang 1y ago(this was originally a reply to https://news.ycombinator.com/item?id=45703746 https://news.ycombinator.com/item?id=45703746 before we merged the threads)
- fijiaarone 1y ago640k ought to be enough for anyone.
- rts_cts 1y agoThis is great news! I do wish that they had push a little bit harder to get $524288 though
- jorangreef 1y agoThanks! We had to leave room at the top for the next power of two, or others would have to raise the exponent ;P
- scuff3d 1y ago> In all these things, what impressed me most was Zig’s approach to safety when working with the metal. Not in terms of an on/off decision, but as a spectrum. Not aiming for 100% guarantees across 1 or 2 categories, but 90% and then across more categories. Not eliminating classes of bugs, but downgrading their probability. All while preserving the power-to-weight ratio of the language, to keep the language beautifully simple. - From TigerBeetles blog on this Such an excellent summary. I've been trying to communicate this regarding the difference in Rust and Zigs approach to memory safety, and Joran does it so much better than I ever could.
- wocram 1y agoWhy is 90% enough?
- CitrusFruits 1y agoI think the idea is that perfect is the enemy of good here and that getting from 90% to 100% involves tradeoffs that aren't actually worth it from a language ergonomics point of view.
- bsder 1y agoWhat are you trading off to get from 90% to 100%? How about compile speed? Are you willing to wait an extra second to get 100%? How about 10 seconds? A minute? 10 Minutes? An hour? Rust is notoriously slow at compiling and people have been banging on it for a while. At some point, you have to accept that the language, itself, has properties that make compilation slow.
- deleted 1y ago[deleted]
- Ostatnigrosh 1y agoI'd probably agree with most in the comment section. Comparing Rust & Zig is not productive. I spent the last month familiarizing myself with Zig after having done a 2 years stint with Rust and Zig is a much younger language with a far smaller ecosystem to work with. If I were to reach for C i'd recommend Zig. If I were reaching for C++ then it would be Rust. Both are fantastic languages and I hope to see them both evolve in years to come. Zig has a longer road ahead but it really is elegant and simple to work with.
- RustSupremacist 1y agoThis reminds me that the Rust Foundation is a 501(c)(6) and not a 501(c)(3) like the Zig Software Foundation. To me, the Rust Foundation would do better for the community if they were a 501(c)(3) and more transparent about finances.
- sunsetSamurai 1y agoit seems Zig is gaining a lot of momentum, I've never coded in it but it seems like a very interesting language. I hope it succeeds.
- neckbeards 1y agojorangreef: Could you elaborate on what aspects of Zig made it the preferred choice for TigerBeetle compared to C++? I understand the C type system has limitations. I’m particularly interested as I’ve encountered similar challenges with intrusive data structures in my own work. This isn’t intended as flamebait. I’m trying to understand Zig’s long-term positioning and design philosophy. I have serious confusion about the type of problems Zig is aiming to solve. In my view, Zig is not solving the actual hard problems in systems programming and it doesn't have the foundation to either. Memory safety? Still entirely manual. Race conditions? Nothing in the language prevents them. There’s no ownership model, no lifetime analysis, no way to tie resource management to the type system. Compare that to Rust’s borrow checker or modern C++’s RAII and concepts. Zig’s type system is shallow. comptime is nice for generating code, but it doesn’t give you formal guarantees or expressive power for invariants, safety, or correctness. The type system itself has no serious formal grounding. It can’t encode complex invariants, can’t track aliasing, can’t enforce concurrency safety and can’t model safe resource lifetimes. These aren’t academic extras — they’re exactly what decades of research in programming languages, operating systems and concurrent computing tell us you need to scale safety and correctness. Zig ignores them. Performance? When the policy is in the type (allocator choice, borrowing/ownership, fusion shape), Rust/C++ compilers can specialize, inline, and eliminate overhead. In Zig, the same policies are usually runtime values or conventions, which means more indirect calls, more defensive copies and fewer whole-program optimizations. Concurrency is another major gap and in a real systems language, it cannot be an afterthought. Even if Zig isn’t currently aiming to solve concurrency or safety, a “serious” systems language inevitably has to, because these are the problems that determine scalability, maintainability and security over decades. The async model in Zig is little more than manual coroutine lowering: the compiler rewrites your function into a state machine and leaves correctness entirely to the programmer. There’s no structured concurrency, no safe cancellation, no prevention of shared-state hazards. Without a concurrency model that integrates into the type system, you can’t make guarantees about thread safety or race freedom and you end up relying entirely on discipline (which doesn’t scale). Even in its most-touted features, Zig seems to be solving syntactic sugar problems, not the important systems problems. defer and errdefer? They’re effectively cleaner syntax for patterns C has had for decades through GNU’s __attribute__((cleanup)) or macro-based scope guards. Error unions? A nice alternative to out-parameters but just syntactic polish over an old idea. comptime? A more integrated macro system but still aimed at reducing boilerplate rather than providing deeper correctness guarantees. The allocator interface? Another missed opportunity. Zig could have made it type-aware, preventing allocator misuse and catching entire classes of errors at compile time. Instead, it’s basically malloc/free with slightly cleaner function signatures. No safety net, no policy enforcement. Zig discards decades of research in type systems, concurrency models, safety guarantees, and memory management, then reimplements C with a few ergonomic wins and leaves the hard problems untouched. It’s a restart without the research and not systems language evolution. I am not a Rust fanatic but by contrast if you’re moving away from C++ or C, Rust actually tackles the big issues. It enforces memory safety without a garbage collector, prevents data races in safe code through its ownership and type system, offers structured concurrency with async/await and has been battle-tested in production for everything from browser engines to operating systems to databases. It is built on decades of progress and integrates those lessons into a language designed to scale correctness and performance together. In my own code (primarily C++ and Rust), Zig wouldn’t solve a single core problem I face. Memory safety would still be my responsibility, concurrency would still be entirely manual, performance tuning would remain just as challenging and the type system wouldn’t catch the subtle bugs that matter most. The net result would be cosmetic changes paired with fewer correctness guarantees. Even C, for all its flaws, is better defined than Zig (both in having a detailed, standardized specification and in benefiting from partial formalization). I am eager and optimistic that Zig starts taking itself seriously as a systems language. With new talent, deeper engagement with existing research and a focus on solving the actual hard problems, not just smoothing over C’s syntax, Zig could grow into something much more than it is today. But until then, the question remains: what problems is Zig actually solving that make it worth adopting over Rust or even modern C++? What concrete systems programming problems has Zig’s development team personally run into that shaped its design and are those really the most critical issues worth addressing in a new systems language? If all it offers is nicer syntax over the same old pitfalls, I don’t see it and I don’t see why anyone betting on long-term systems software should. What am I missing?