1.

How to convert the large application into microservices architecture?

Answer»

Microservices should be autonomous and divided based on business CAPABILITIES. Each software component should have single well-defined responsibility (a.k.a Single Responsibility Principle) and the principle of Bounded Context (as defined by Domain Driven DESIGN) should be used to CREATE highly cohesive software components. 

For example, an e-commerce site can be partitioned into following microservices based on its business capabilities:

  • Product catalogue

Responsible for product information, searching products, filtering products & products facets.

  • Inventory

Responsible for MANAGING inventory of products (stock/quantity and facet). 

  • Product review and feedback

Collecting feedback from users about the products.

  • Orders

Responsible for creating and managing orders.

Process payments both online and offline (Cash On Delivery).

  • Shipments

Manage and track shipments against orders.

  • Demand generation

Market products to relevant users.

  • User Accounts

Manage users and their preferences.

  • Recommendations

Suggest new products based on the user’s preference or past purchases.

  • Notifications

Email and SMS notification about orders, payments, and shipments.

The client application (browser, mobile app) will interact with these services via API gateway and render the relevant information to the user.



Discussion

No Comment Found