Study a production-quality example to learn how to split a .NET application into modules without turning it into microservices.
Use the architecture decisions and diagrams as a reference when designing your own .NET app with Domain-Driven Design.
See how CQRS separates read and write operations in a real application with authentication, logging, and tests included.
Copy the meeting-group domain model as a starting template for a .NET app that has real business rules beyond basic create-read-update-delete.
Requires .NET SDK and a SQL database, the React front end needs Node.js, full setup involves reading the architecture documentation.
This repository is a full, working .NET application built in C# that demonstrates how to structure a moderately large application as a modular monolith using Domain-Driven Design principles. A modular monolith means the code runs as a single deployed application, but is organized internally into clear, self-contained modules rather than a tangle of interconnected code. Domain-Driven Design is an approach where the structure of the code closely mirrors the real-world business concepts and rules it represents. The author built this because most example projects on GitHub that claim to show these patterns are either too simple to be useful, unfinished, or do not clearly explain the decisions behind them. The goal here is to show what a real, production-ready implementation looks like, including things like authentication, logging, unit tests, integration tests, event sourcing, and database change management. The business domain chosen for the example is a meeting-group organizer, similar to Meetup.com. Users can join groups, create meetings, and interact with other members. This domain was picked because it is familiar to many people, has real business rules beyond simple create-read-update-delete operations, and does not require specialized knowledge to understand. The project also uses an architectural pattern called CQRS, which separates the actions that read data from the actions that write data. There is a companion front-end application built in React. The README includes diagrams, architecture decision records, and detailed explanations of each design choice. The project requires a stance on the Russia-Ukraine conflict as a condition of use, as stated in the repository itself. The full README is longer than what was shown.
← kgrzybek on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.