Awesome
Vehicle Tracker Application (Microservice)
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
Introduction
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.
The Architecture
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,
How to up the services
Now every services setting up on docker compose file, you can easier run it by simple steps;
$ cd src
$ docker-compose up
Swagger supported
You can have a look exposed endpoint by calling:
# -------Exposed API with Ocelot-------
http://localhost:6543/swagger
How Microservices can know each others
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
Example Information
This is example of event sourcing metadata
Milestones
- 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
Support Me
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.
<a href="https://www.buymeacoffee.com/6VF3XHb" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/black_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a>