Design Microservice Architecture
In this tutorial, we are going to design Microservice architecture step by step. Iterate the arch design one by one as per requirements. We had a requirement that saves the orders see the baskets so on. So we should need database design in this architecture.
As you can see that we have applied “Database per Microservices” and put a database for every microservices on our e-commerce application. So now these databases can be polyglot persistence.
That means Product microservice can use NoSQL document database Shopping Cart microservice can use NoSQL key-value pair database and Order microservice can use Relational database as per the data storage requirements.
As you can see that we have designed our e-commerce application as a Microservices architecture and handle Functional Requirements and Non-Functional Requirements like scalability, reliability, and so on.
Technology choices — Adapting Technology Stack
We are going to Adapting Technology Stack, implement possible Technology choices.
Microservices are polyglot environments. You can pick any tech stack, as per microservices. Communication will be handled via REST APIs.
- java — spring boot
- c# — asp.net
- js — node js
- python — django
- python — flask
These are backend web API languages and frameworks that can be suited. Since microservices are polyglot environments you can pick one of them for every particular microservices.
Now we can choose NoSQL or relational DBs as per microservice persistence requirements.
- Sql Server
So these are the options that we can use on our e-commerce microservice architecture. We will decide on these tools as per our requirements and the company its strategy.
See that UI and Micro Service communication are direct, and it seems hard to manage communications. We now should focus on microservices communications by applying the API GW pattern and evolving this architecture step by step.
We will discuss different types of microservice design patterns in upcoming tutorials.