-
Install git - https://git-scm.com/downloads.
-
Install .NET 5 - https://dotnet.microsoft.com/download/dotnet/5.0.
-
Install Visual Studio 2019, Rider or VSCode.
-
Install docker - https://docs.docker.com/engine/install/.
-
Make sure that you have ~10GB disk space.
-
Create Github Account
-
Clone Project https://github.com/oskardudycz/EventSourcing.NetCore, make sure that's compiling
-
Check https://github.com/jbogard/MediatR, http://jasperfx.github.io/marten/documentation/
-
Open
MeetingsManagement.sln
solution. -
Docker useful commands
docker compose up
- start dockersdocker compose kill
- to stop running dockers.docker compose down -v
- to clean stopped dockers.docker ps
- for showing running dockersdocker ps -a
- to show all dockers (also stopped)
-
Wait until all dockers got are downloaded and running.
-
You should automatically get:
- Postgres DB running
- PG Admin - IDE for postgres. Available at: http://localhost:5050.
- Login:
[email protected]
, Password:admin
- To connect to server Use host:
postgres
, user:postgres
, password:Password12!
- Login:
- Kafka
- Kafka ide for browsing topics. Available at: http://localhost:8080/ui/clusters/local/topics
- ElasticSearch
- Kibana for browsing ElasticSearch - http://localhost:5601
It's a real world sample of the microservices written in Event-Driven design. It explains the topics of modularity, eventual consistency. Shows practical usage of WebApi, Marten as Event Store, Kafka as Event bus and ElasticSearch as one of the read stores. See more in here.
- Meetings Management Module - module responsible for creating, updating meetings details. Written in
Marten
in Event Sourcing pattern. Provides both write model (with Event Sourced aggregates) and read model with projections. - Meetings Search Module - responsible for searching and advanced filtering. Uses
ElasticSearch
as a storage (because of it's advanced searching capabilities). It's a read module that's listening for the events published by Meetings Management Module.