Skip to content

Commit

Permalink
Updated links with section "This is Not Event Sourcing"
Browse files Browse the repository at this point in the history
  • Loading branch information
oskardudycz committed Oct 3, 2021
1 parent 1a3f47f commit 3983fb3
Show file tree
Hide file tree
Showing 6 changed files with 146 additions and 14 deletions.
90 changes: 77 additions & 13 deletions README.md

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions Sample/AsyncProjections/README.md
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.
2 changes: 1 addition & 1 deletion Sample/EventStoreDB/Simple/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The PR is adding a new sample that contains the simple Event Sourcing setup with EventStoreDB. For the Read Model, Postgres and Entity Framework are used.

You can watch the webinar on YouTube when I'm explaining the details of the implementation:
You can watch the webinar on YouTube where I'm explaining the details of the implementation:

<a href="https://www.youtube.com/watch?v=rqYPVzjoxqI" target="_blank"><img src="https://img.youtube.com/vi/rqYPVzjoxqI/0.jpg" alt="Practical introduction to Event Sourcing with EventStoreDB" width="320" height="240" border="10" /></a>

Expand Down
54 changes: 54 additions & 0 deletions Sample/README.md
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.
4 changes: 4 additions & 0 deletions Sample/Tickets/README.md
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.
5 changes: 5 additions & 0 deletions Sample/Warehouse/README.md
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.

0 comments on commit 3983fb3

Please sign in to comment.