MICROSERVICES IN MY OWN WORDS
Tags: microservices, apigateway, systemdesign, programming
Published: 2023-07-25 15:34:02

Microservices are an effective way to scale products in terms of operations and developments (DevOps). This involves separating each part of a product base on services e.g. report generation, transaction processing, user management, etc.

SCALING DEVELOPMENT

These components can then become backend services that are contained in their own separate codebases and each handled by a separate individual/team leading to specialization, quick bug detection and fixes, quick customer escalation handling, and deeper observability ( app monitoring), all of these help to scale the development processes. One last example, microservices allow for the use of different stacks/languages that is suitable for a service instead of the monolith one stack/language for all. 

SCALING OPERATION

Each of these services can be deployed separately without affecting the entire product. Bug fixes and feature updates get deployed to production easily and fast. During deployment, only the tests for that service will run leading to a quick deployment time. microservices can also take advantage of multi-cloud. 

These are a few ways that microservices can help to scale operations.

EVENT DRIVEN ARCHTECTURE(EDA)

Microservices gave birth to the rise in the need for EDA(event-driven architecture), most time these services depend on each other, and they need to communicate in a consistent and deterministic manner, especially in the transaction processing in the wallet management system, order of processing matter, and downtime in the transaction processing doesn't have to lead to a loss of transactions at that moment. EDA comes to solve that issue and many more with products like Apache Kafka and RabbitMQ etc.

SECURING MICROSERVICES 

API gateway architecture is the only way that comes to mind while writing this. An API gateway setup can help protect the services and bring about a more secure microservices system. NGINX published a very good article on this topic that I have used in the past and it helped me to create a lucid image of the concept in my head. Here is a link to the article: [What Is an API Gateway?](https://www.nginx.com/learn/api-gateway/)

MICRO FRONT-END

On the front-end(client side) as well, there is now a micro front-end just coming up. The micro front-end is microservices on the client side. I have not seen this architecture used in production nor have I tried it out personally before but I think I am willing to explore. [Micro-front-ends.org](https://micro-frontends.org/) is a great place to deepen your understanding and get started as well.

DISADVANTAGES OF MICROSERVICES

It requires a large team to maintain and it is expensive to run. Big companies use it, recently, startups are beginning to use it to scale their products. Well if they can generate enough revenue or rake in more investor's cash, I guess they can keep it.

NOTE TO ALL READERS

The content of this article is spontaneous i.e. apart from the links to articles and sites I have visited in the past that I had to look up, every other thing came from years of learning and developing with microservices. If there is something you think I missed or not accurate, please let me know, it would be a great opportunity for me to learn and relearn.

Let me know if you have any suggestions or questions in the comments.
You can reach me on [linkedin](https://www.linkedin.com/in/haastrupea/) and [Twitter: killcodeNG](https://twitter.com/killcodeNG).