Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Domain-Driven Design
  3. eShopOnContainersDDD

eShopOnContainersDDD

MITC#

A fully event-sourced e-commerce microservices example built with DDD, CQRS, and Aggregates.NET patterns.

GitHubGitHub
322 stars45 forks0 contributors

What is eShopOnContainersDDD?

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.

Target Audience

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.

Value Proposition

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.

Overview

Fork of dotnet-architecture/eShopOnContainers in full DDD/CQRS design using my own patterns

Use Cases

Best For

  • Learning event sourcing and CQRS patterns in a real-world .NET application
  • Building scalable e-commerce platforms with microservices
  • Implementing Domain-Driven Design in distributed systems
  • Creating audit-friendly applications with complete change histories
  • Developing systems where multiple departments need different views of the same data
  • Practicing containerized deployment with Docker and microservices

Not Ideal For

  • Teams needing rapid prototyping without complex distributed system setup
  • Developers on Windows environments due to Linux-only Docker requirements
  • Projects avoiding proprietary library licenses like ServiceStack
  • Applications where simple CRUD operations suffice, making event sourcing overkill

Pros & Cons

Pros

Comprehensive Event Sourcing Example

Demonstrates a fully event-sourced application using Aggregates.NET, providing a practical implementation of DDD and CQRS with clear architecture diagrams.

Clear Separation of Concerns

Strictly implements CQRS to separate commands and queries, improving scalability and maintainability as explained in the logical overview.

Flexible Read Models

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.

Containerized Microservices

Employs Docker for containerization, showcasing modern deployment practices in a distributed microservices architecture.

Cons

Experimental and Unpolished

Admitted by the author as not bug-free and written quickly in free time, so it lacks production readiness and may have unresolved issues.

Complex Setup Hurdles

Requires specific licenses like ServiceStack, Linux environment, and manual IP configuration, making initial deployment cumbersome.

Limited Platform Support

Currently only runs on Linux due to Docker image dependencies, excluding Windows developers without significant workarounds.

Frequently Asked Questions

Quick Stats

Stars322
Forks45
Contributors0
Open Issues0
Last commit3 years ago
CreatedSince 2018

Tags

#eventsourcing#cqrs#event-sourcing#e-commerce#distributed-systems#domain-driven-design#nservicebus#ddd#netstandard#cqrs-es#dotnet#docker#microservices#eventstore

Built With

M
Material UI
N
Nest
R
React
T
TypeScript
D
Docker
m
mobx-state-tree
m
mongodb_driver

Included in

Domain-Driven Design12.2k
Auto-fetched 17 hours ago

Related Projects

Modular MonolithModular Monolith

Full Modular Monolith application with Domain-Driven Design approach.

Stars13,664
Forks2,156
Last commit1 year ago
eShopOnWebeShopOnWeb

Sample ASP.NET Core 8.0 reference application, now community supported: https://github.com/NimblePros/eShopOnWeb

Stars10,666
Forks5,976
Last commit1 year ago
EquinoxProjectEquinoxProject

Web Application ASP.NET 9 using Clean Architecture, DDD, CQRS, Event Sourcing and a lot of good practices

Stars6,772
Forks1,650
Last commit1 month ago
Event Sourcing .NETEvent Sourcing .NET

Examples and Tutorials of Event Sourcing in .NET

Stars3,671
Forks543
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub