-
-
Notifications
You must be signed in to change notification settings - Fork 512
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updated links with section "This is Not Event Sourcing"
- Loading branch information
1 parent
1a3f47f
commit 3983fb3
Showing
6 changed files
with
146 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# SmartHome IoT with Marten | ||
- typical Event Sourcing and CQRS flow, | ||
- DDD using Aggregates, | ||
- stores events to Marten, | ||
- asynchronous projections rebuild using AsynDaemon feature. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
|
||
# Samples | ||
|
||
See also fully working, real-world samples of Event Sourcing and CQRS applications in [Samples folder](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample). | ||
|
||
Samples are using CQRS architecture. They're sliced based on the business modules and operations. Read more about the assumptions in ["How to slice the codebase effectively?"](https://event-driven.io/en/how_to_slice_the_codebase_effectively/?utm_source=event_sourcing_net). | ||
|
||
## [ECommerce with Marten](./ECommerce) | ||
- typical Event Sourcing and CQRS flow, | ||
- DDD using Aggregates, | ||
- microservices example, | ||
- stores events to Marten, | ||
- distributed processes coordinated by Saga ([Order Saga](./ECommerce/Orders/Orders/Orders/OrderSaga.cs)), | ||
- Kafka as a messaging platform to integrate microservices, | ||
- example of the case when some services are event-sourced ([Carts](./ECommerce/Carts), [Orders](./ECommerce/Orders), [Payments](./ECommerce/Payments)) and some are not ([Shipments](./ECommerce/Shipments) using EntityFramework as ORM) | ||
|
||
## [Simple EventSourcing with EventStoreDB](./EventStoreDB/Simple) | ||
- typical Event Sourcing and CQRS flow, | ||
- functional composition, no aggregates, just data and functions, | ||
- stores events to EventStoreDB, | ||
- Builds read models using [Subscription to `$all`](https://developers.eventstore.com/clients/grpc/subscribing-to-streams/#subscribing-to-all), | ||
- Read models are stored as Postgres tables using EntityFramework. | ||
|
||
## [ECommerce with EventStoreDB](./EventStoreDB/ECommerce) | ||
- typical Event Sourcing and CQRS flow, | ||
- DDD using Aggregates, | ||
- stores events to EventStoreDB, | ||
- Builds read models using [Subscription to `$all`](https://developers.eventstore.com/clients/grpc/subscribing-to-streams/#subscribing-to-all). | ||
- Read models are stored as Marten documents. | ||
|
||
## [Warehouse](./Warehouse) | ||
- simplest CQRS flow using .NET 5 Endpoints, | ||
- example of how and where to use C# Records, Nullable Reference Types, etc, | ||
- No Event Sourcing! Using Entity Framework to show that CQRS is not bounded to Event Sourcing or any type of storage, | ||
- No Aggregates! CQRS do not need DDD. Business logic can be handled in handlers. | ||
|
||
## [Meetings Management with Marten](./MeetingsManagement/) | ||
- typical Event Sourcing and CQRS flow, | ||
- DDD using Aggregates, | ||
- microservices example, | ||
- stores events to Marten, | ||
- Kafka as a messaging platform to integrate microservices, | ||
- read models handled in separate microservice and stored to other database (ElasticSearch) | ||
|
||
## [Cinema Tickets Reservations with Marten](./Tickets/) | ||
- typical Event Sourcing and CQRS flow, | ||
- DDD using Aggregates, | ||
- stores events to Marten. | ||
|
||
## [SmartHome IoT with Marten](./AsyncProjections/) | ||
- typical Event Sourcing and CQRS flow, | ||
- DDD using Aggregates, | ||
- stores events to Marten, | ||
- asynchronous projections rebuild using AsynDaemon feature. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Cinema Tickets Reservations with Marten | ||
- typical Event Sourcing and CQRS flow, | ||
- DDD using Aggregates, | ||
- stores events to Marten. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Warehouse | ||
- simplest CQRS flow using .NET 5 Endpoints, | ||
- example of how and where to use C# Records, Nullable Reference Types, etc, | ||
- No Event Sourcing! Using Entity Framework to show that CQRS is not bounded to Event Sourcing or any type of storage, | ||
- No Aggregates! CQRS do not need DDD. Business logic can be handled in handlers. |