Why I'm Building a Database Engine in C# 28 March 2026 - 16 mins read time Tags: csharp dotnet database performance typhon 💡Typhon is an embedded, persistent, ACID database engine written in .NET that speaks the native language of game servers and real-time simulations: entities, components, and systems. It delivers full transactional safety with MVCC snapshot isolation at sub-microsecond latency, powered by cache-line-aware storage, zero-copy access, and configurable durability. Series: A Database That Thinks Like a Game Engine Why I’m Building a Database Engine in C# (this post) What Game Engines Know About Data That Databases Forgot Microsecond Latency in a Managed Language (coming soon) When I tell people I’m building an ACID database engine in C#, the first reaction is always the same: “But what about GC pauses?” It’s a fair question. Nobody builds high-performance database engines in .NET. The assumption is that you need C, C++, or Rust for this class of software — that managed languages are fundamentally disqualified from the microsecond-latency club. After 30 years of building real-time 3D engines and systems software, I chose C# anyway. The project is called Typhon: an embedded ACID database engine targeting 1–2 microsecond transaction commits. And the reasons behind that choice might change how you think about what C# can do. The Case Against C# (Let’s Steel-Man It) Before I make my case, let me honestly lay out every argument against choosing C# for this. These are real concerns, not strawmen. The GC is non-deterministic. It can pause all your threads whenever it wants. For a database engine that promises microsecond latency, a 10ms Gen2 collection is catastrophic — that’s 10,000x your latency budget. You don’t control memory layout. The managed heap decides where objects live. The GC can move them around during compaction. You can’t guarantee that your B+Tree nodes sit on cache-line boundaries, or that your page cache buffer won’t get relocated mid-trans...
First seen: 2026-04-10 16:59
Last seen: 2026-04-10 18:00