Vehicle Tracking sample microservice designed by CQRS Architechture, and ES (Event Sourcing) based on EventFlow, and .NET Core framework on the EntityFramework with SQL Server also Dockerize Linux supported
This is example for running various microservice in case of Vehicle Tracking. The plateform ran on .NET Core framework with Linux compatible. And designed along the dockerize concept with convenince way to use. And the core concept of CQRS that brought up by EventFlow that I spent a lot of time to learning it.
I'm not know well about Microservices concept, while you can help me to make it better way, however when I've look back to the starting.. It's very painful to re-thinking what CQRS is,
Now every services setting up on docker compose file, you can easier run it by simple steps;
$ cd src
$ docker-compose up
You can have a look exposed endpoint by calling:
# -------Exposed API with Ocelot-------
http://localhost:6543/swagger
So when every single microservice emitting from them aggregate (aka. VehicleAggregate) them always produce single event and store to EventSourcing by itself. That mean other service didn't know what happend on that service, so we will communicate with RabbitMq following this simple work flow
and we create another sample console application to consume the event (listening the events from queue at rabbitmq), when we publishing the event will be up to the exchange stream in rabbitmq, and we need to bining to the queue that we want to consume, so this is then result when we consume the event from vehicle service with another service
you can check the connections with rabbitmq management tools by go to (http://localhost:15672/#/) with test/test login/password here
This is example of event sourcing metadata
- Get/Delete/Create a Vehicle
- Add AgreegateSnapshot
- Custom readstore called "EFSearchableReadstore"
- Complete API Gateway with Ocelot
- A Sample for AggregateSaga
- STS (Secured Token Service) with Redis and IdentityServer4
- Implement "EventStore" instead of using "EntityFramework" to store event sourcing
- Integrate with GoogleMap API to send near place location name
If you've got value from any of the content which I have created, but pull requests are not your thing, then I would also very much appreciate your support by buying me a coffee.