Come for the simplicity, stay for the capabilities That’s the tagline I’ve settled on for Cratis. But to understand why, we need to go back to where this all started. The burden of helping other developers Back in 1994, I started in games development, working mostly on the 2D/3D engine and tooling side of things. That’s where I found my love and lot in life: creating things that help other d...
When we’re working with Cratis, we work across lots of different devices — phones, iPads, Macs, random browsers, whatever’s nearby. We use GitHub issues heavily because people register via issues and we want to assign them. That shapes how we optimize everything. One thing we’ve done is synchronize all our Copilot setup across repositories and devices. We structured it so you can edit the conf...
What is a Dynamic Consistency Boundary? A Dynamic Consistency Boundary (DCB) is a deceptively simple idea: consistency should be scoped to the facts a decision actually needs, not to a fixed object boundary drawn at design time. In practice that means: Load only the data relevant to the decision at hand. Derive the consistency boundary at runtime from that data. Enforce consistency fo...
I’m excited to announce two major releases in the Cratis ecosystem: Chronicle v15.0.0 and Arc v19.0.0. While these releases went out the door a few weeks ago, we’ve been too busy shipping features and improvements to properly announce them - until now! These releases represent a significant milestone in our journey to provide a robust, developer-friendly event sourcing and CQRS platform for .NE...
Background We have the following core principles of how we approach developing any public facing APIs in Cratis: APIs should be lovable Provide sane defaults but make them flexible, extensible and overridable Consistency is king It should be easy to do things right, hard to do things wrong Never expose more than is needed With the Chronicle project we’ve had a couple of challenge...