Ocelot: Gateway
Consul: Service Discovery
Services communicate with events via RabbitMQ. BuildingBlocks/EventBus is a common project for services and it can be published as a package on Nuget.
Middle Event Communicator for services using RabbitMQ. Can be used for distributed transactions. In case of error on services(Business,Network etc.), Orchestrator logs the exceptions, call Reverse functions and provide Consistency on system.
Orchestrator is an intelligent communicator that manages a chain of events. Orchestrator knows the next event to be called if next event is existed and should be called.
Product Service provides to create, delete and list products.
Used CQRS, Mediatr, RabbitMQ, MassTransit in this service and used MsSQL to store product data.
Basket Service provides to add products to basket, delete products from basket, list products and checkout basket to start an order process.
Used Redis to store basket.
Identity Service provides register and login process.
Used MsSQL to store user data.
Order Service provides to list orders, manage Order process with events.
Used DDD in this service and used MsSQL to store order data.
Payment Service provides to manage payment process with dummy service.
This service runs as a console application. Listens events and prints notification messages to console.