Rebai Hamida
2 min readOct 10, 2021

Microservices as a concept

Building Microservices is a new architectural style started late 2013, where discussions about this new way of designing solution begins, the definition wasn’t clear because it was similar to SOA (software oriented architecture), but on 2014, James Lewis and Martin Fowler wrote about it, they defined Microservices as new architectural term:

The term “Microservice Architecture” has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.” Source: https://martinfowler.com/articles/microservices.html

This style promotes the development of complex applications as a suite of small services based on business capabilities and multiple, independent subsystems in the form of autonomous services.

The idea of Microservices, is really simple, it consists to split your application into a set of smaller, interconnected services instead of building a single monolithic application. Each Microservice can be a small application or an API or a web services that has its own hexagonal architecture consisting of business logic along with various adapters.

Some microservices would expose a REST, RPC or message-based API and most services consume APIs provided by other services.

Other Microservices might implement a web UI.

This concept will be detailed next, but to understand this style we need to compare it between a monolithic and SOA because we can’t use Microservices as a reference for all projects.

Monolith vs SOA vs Microservices

Any application is built as a collection of services can be developed, tested, versioned, deployed, and scaled.

For Monolithic applications, Scales is done by cloning the app on multiple servers — VMs.

But for microservices, scales is done by deploying each independently with multiple instances across servers — VMs.

I highly recommend seeing more details on Martin Fowler’s site.

Microservices are very similar to bee hives. Within a hive, thousands of bees coexist and help each other for a single common goal: the survival of the colony.

Rebai Hamida
Rebai Hamida

Written by Rebai Hamida

Senior Cloud Application Architect, Microsoft MVP in Developer Technologies, MCT, Technical writer, Speaker

No responses yet