MICROSERVICES .NET CORE WITH EXAMPLE — Part 2

Solution explanation and technologies

Bingeek
2 min readNov 21, 2019

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

Part 3: Domain-driven design fundamental

--

--