1
2 Comments

Learn how microservices work

I found a great picture describing microservices' main idea and architecture. So I think it would be interesting to discuss this topic. Btw the image will be somewhere above. Let's start with the definition of microservices:

A microservice architecture (MSA) is an approach to designing software solutions that presupposes the creation of an application fragmented into small, loosely coupled modular components and services instead of building one big monolithic product.

The main objective for building MSA is to gain the ability to add initially unplanned services to the solution easily and scale certain parts of the application in a simpler way without affecting the rest of the system. Check out the image below to get a general overview of the microservice architecture.

MSA is often chosen by companies over the traditional monolithic approach mainly due to its ability to shorten the development and deployment lifecycles while reducing the cost as a result. Now let's talk about the main characteristics of microservice architecture in the image below.

Characteristics of microservices

  • Time-efficient
    Microservices are usually put into use to speed up application development.

  • Language neutral
    Each service can be developed, deployed, and managed independently and can utilize different programming languages, different tech tools, and different software environments based on the needs of each.

  • Cost-efficient
    The cost of scaling is comparatively less than the monolithic architecture.

  • Agile
    Microservices allow you to organize your business operations around multiple teams, each responsible for a specific function - so you don't have to micromanage every process in your company.

  • Independent
    Services are built around business capabilities, independently deployable and packaged, each running in its own process.

  • Reusable
    Businesses can reuse existing modules in other solutions instead of developing new functionality from scratch for every application.

However, despite all the benefits that this modern approach to building software applications can bring to your business, it's not a silver bullet that should be applied in any business scenario. So if you want to read more on this topic, check this article to learn even more.

https://www.aimprosoft.com/blog/java-framework-for-microservices/

on January 11, 2023
  1. 2

    The MSA is often chosen by companies over the traditional monolithic approach mainly due to its ability to shorten the development and deployment lifecycles while reducing the cost as a result.

    Thanks for bringing this up, it's definitely worth discussing!

    One thing to bear in mind is that all of this is only true for big organisations, where inter-team communication would slow things down (i.e team A can't release because team B is working on another part of the system and the whole project isn't ready to deploy, the teams have to coordinate releases together).

    As an indie hacker, microservices will -never- be faster or more efficient than a monolithic approach. Deployments will be slower (you have to deploy multiple separate projects when you make changes), you'll have to think about the API between the different microservices, you will have to be careful about how you release updates (can't update microservice B until you've deployed microservice A because your change to B depends on new functionality added to A), and a number of other things.

    As an indie hacker, or even a small dev team, letting yourself get distracted setting up a bunch of microservices will do you much more harm than good.

    1. 1

      Hello Fletcher, thanks for your answer. It was very interesting to read about your experience, and I think this answer will surely help some indie hackers.