Analysis updated 2026-07-03
Build an e-commerce order system that tracks every state change as a permanent event log rather than overwriting records.
Learn how to separate read and write code using CQRS patterns with working .NET samples.
Set up a cinema seat reservation system using event sourcing backed by PostgreSQL or EventStoreDB.
Practice versioning events so your production data stays valid after you change the shape of an event.
| oskardudycz/eventsourcing.netcore | communitytoolkit/dotnet | scisharp/llamasharp | |
|---|---|---|---|
| Stars | 3,672 | 3,671 | 3,677 |
| Language | C# | C# | C# |
| Setup difficulty | moderate | easy | moderate |
| Complexity | 4/5 | 2/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires either a PostgreSQL database with Marten or a running EventStoreDB instance to run the samples.
This repository is a collection of tutorials, sample projects, and reference material for learning Event Sourcing in .NET. Event Sourcing is a way of storing data where, instead of overwriting a record with its latest state, you keep a log of every change that ever happened. If a shopping cart was created, then an item was added, then a coupon was applied, all three of those steps are saved as separate events in order. You can always reconstruct the current state by replaying the events from the beginning. The README opens with a plain explanation of the core concepts: what an event is (a fact about something that already happened, named in the past tense and never changed once written), what a stream is (a sequence of events for one entity), and how you get back to the current state by reading through the stream. It also explains related ideas like CQRS, which stands for separating the parts of your code that write data from the parts that read it. The sample projects cover a range of scenarios built with .NET. Several use a library called Marten, which turns a regular PostgreSQL database into an event store. Others use EventStoreDB, a database built specifically for this pattern. The samples include things like an e-commerce order flow, a warehouse inventory system, a cinema ticket reservation system, a smart home IoT example, and a demonstration of handling distributed processes that span multiple services. There is also a sample dedicated entirely to versioning events, which is the practical challenge of changing the shape of an event after it has already been stored in production. Beyond the code samples, the repository includes self-paced training exercises, a list of the author's blog posts and conference talks, and a large curated reading list covering topics like projections, snapshots, GDPR handling in event-sourced systems, domain-driven design, and testing strategies. The companion repositories for Java (JVM) and Node.js are also linked. The full README is longer than what was shown.
A collection of tutorials and sample projects for learning Event Sourcing in .NET, storing every change as an ordered log of events instead of overwriting records, with working code for e-commerce flows, cinema reservations, and testing strategies.
Mainly C#. The stack also includes C#, .NET, PostgreSQL.
License not mentioned in the explanation.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.