MICROSERVICES .NET CORE WITH EXAMPLE — Part 2
Welcome to part 2 of Microservices architecture series. We’re going to go through the solution architecture and the technologies that KCommerce project needs
Let’s look back to the solution architecture
The system consists of:
1. Frontend (Web and CMS): a React JS single pages for:
- Buyers: search products, read shop reviews, chat, purchase products… on Web pages…
- Sellers: add products with information (CMS), write posts for marketing (CMS), comment, chat (Web)…
2. Mobile app: a Xamarin app for both Android and iOS. The demo version only for buyers to use. They can choose either use the KCommerce on website or native app
3. Services
- API gateways: a single-entry point for certain groups of microservices (can be knows as backend for frontend — BFF sometimes). It helps to avoid client connecting to many microservices.
- Auth service: responsible for users authentication and users authorization. It’s based on Microsoft identity and JWT to check the permissions.
- Basket service: use Redis cache to store buyers’ products and other related actions to basket
- Catalog service: provide information about products
- Chat service: give ability to chat for support between buyer and sellers based on SignalR
- Content service: provide ability for sellers to write posts, marketings… and return these data so buyer to see them
- Order service: provide ability to create order, get order information, cancel order or ship order…
- Payment service: manage the purchase from buyers after they make the order. This part will be considered to make (low priority) because of involved third-party libraries
- Search service: expose search functionality using Elastic Search to provide advanced search capabilities
- Event bus with RabbitMQ: allow communication between microservices by subscribing to events, publishing events, and receiving events
- Service discovery: dynamically locate each microservice on a network (instead client must know each microservice address)
- Healthcheck: observe the status for all microservices
The initial solution structure is:
They are the main parts of our system. However, there are more specific contents when we jump deeply into each part. Let’s figure them out in next part.
Thank you