A fully event-sourced e-commerce microservices example built with DDD, CQRS, and Aggregates.NET patterns.
eShopOnContainersDDD is a fork of Microsoft's eShopOnContainers project, reimplemented as a fully event-sourced e-commerce application using Domain-Driven Design (DDD) and Command Query Responsibility Segregation (CQRS) patterns. It demonstrates how to build a distributed microservices system where all state changes are captured as events, providing a complete audit log and enabling flexible read models for different business needs.
Developers and architects interested in learning or implementing DDD, CQRS, and event sourcing in .NET microservices applications, particularly those building scalable e-commerce or distributed systems.
It offers a practical, open-source example of a production-like event-sourced architecture using Aggregates.NET, making complex distributed systems more understandable and maintainable by separating concerns and providing a single source of truth through event logs.
Fork of dotnet-architecture/eShopOnContainers in full DDD/CQRS design using my own patterns
Demonstrates a fully event-sourced application using Aggregates.NET, providing a practical implementation of DDD and CQRS with clear architecture diagrams.
Strictly implements CQRS to separate commands and queries, improving scalability and maintainability as explained in the logical overview.
Uses event logs to generate tailored read models for different business needs, such as for warehouse and marketing departments, illustrated in the event sourcing diagram.
Employs Docker for containerization, showcasing modern deployment practices in a distributed microservices architecture.
Admitted by the author as not bug-free and written quickly in free time, so it lacks production readiness and may have unresolved issues.
Requires specific licenses like ServiceStack, Linux environment, and manual IP configuration, making initial deployment cumbersome.
Currently only runs on Linux due to Docker image dependencies, excluding Windows developers without significant workarounds.
Full Modular Monolith application with Domain-Driven Design approach.
Sample ASP.NET Core 8.0 reference application, now community supported: https://github.com/NimblePros/eShopOnWeb
Web Application ASP.NET 9 using Clean Architecture, DDD, CQRS, Event Sourcing and a lot of good practices
Examples and Tutorials of Event Sourcing in .NET
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.