Microservice Architecture — Through Visuals

Learn about the microservice architecture through infographics and a simple app.

Mukkund Sunjii
3 min readApr 7, 2022

If you are part of the technology industry or working with technology teams, then you might have heard the term microservices. So what is it and why do you need to know it?

Microservice vs monolithic architecture

What is microservice architecture?

It is an architectural pattern that divides a complex software system into smaller services. As opposed to monolithic architecture, which contains several tightly coupled parts that carry out the business logic.

Why is it important for you to know?

  • Product owner: By having the over-arching system design in mind, you will be able to identify bottlenecks in the value stream and manage teams.
  • Software Developers: You will understand how the data flows in and out of the system. This will improve the overall quality of the software you make.
  • QA: Able to identify and build a prognosis of the problems in the program.

Microservices in action

The architecture of the notetaking app

The architectural pattern can be simplified further with an example. I have built a simple notetaking application (a humorous copy of Google Keep, but it works as a simple example).

App Functionality

The following GIFs showcase the functionality of the app:

Store and retrieve notes from a database
Add new notes to the database
Delete notes from the database

App Workflow

User workflow

The application is based on the MERN stack (Mongo-Express-React-Node frameworks). The workflow is as follows:

  1. The react app gets served to the user by a reverse proxy server like NGINX.
  2. The front end app sends requests to a REST API based on the user interaction.
  3. The web server on the back end responds to the requests by creating, reading, updating or deleting data (CRUD operations) on the database.

As seen above, the microservices communicate with each other over HTTP. When designed well enough, each service can be:

  • Independently developable, maintainable, testable, deployable and scalable.
  • Able to be supported by a small team.
  • Loosely coupled.

Of course, microservice architecture comes with its caveats and is not ideal in all scenarios. Nevertheless, it is a proven design model when creating complex software systems.

Footnotes:

  • The React notetaking app was built using the course by Angela Yu. It was further modified to allow for the data to be persisted.
  • This article is not meant to be a technical guide. Please refer to the links provided for detailed information.

--

--