Microservice definition by Martin Fowler

What is the deal with microservices?

Microservices is a type of architecture with a single goal: to avoid complexity.

Microservice definition by Martin Fowler
Microservice definition by Martin Fowler

Most of the books define microservices as an alternative architecture for building applications, while they offer a great way to to decouple components within an application boundary. In microservice paradigm, each component is a full but miniature application with focus on producing a single business task in compliance to the single responsibility principle.

Microservices is an application architectural style in which an application is composed of many discrete, network-connected components called microservices. Microservices architecture focuses on HTTP and JSON protocols to communicate, therefore you may write microservices with any programming language.

Benefits of microservices:

  • agility and productivity
  • scalability
  • resilience
  • accelerate delivery by minimizing communication among people
  • reduce the scope and risk of changes

Important Note: Because reuse create dependencies, which make it harder harder for the team to work independently, microservices value independence over reuse among services. (reuse within a service is still valued).

When do you know you are doing microservices well?

When you take one service, make a change and deploy it into production without having to touch everything else.

Principles of microservices

  1. Modelled around business domain
  2. Culture of automation
  3. Hide implementation details
  4. Decentralize all the things
  5. Deploy independently
  6. Consumer first
  7. Isolate failure
  8. Highly observable

Disadvantages of microservices

While following microservices architecture guidelines it is easy writing an individual microservices, but in the same time operationalizing and scaling it is difficult.

Take away

  • A microservice is a small and autonomous service that works well together with another microservice.
  • The prefix micro in microservice refers to the granularity of the internal components, and not to the granularity of the exposed interfaces.
Spread the love

Leave a Reply