Microservices - It's Not The Size That Matters!

Microservices - It's Not The Size That Matters!

The diagram above is NOT something you want! That is how to do microservices the wrong way.

In many ways "micro" is not the best name for what a "microservice" is or should be. A lot of time is wasted trying to understand or explain what "micro" means. Ok, it means "small". So? How does smallness help us partition a large application? And when does micro become nano and when does it become monolith? I can see hundreds of meeting hours spent in semantic debates about what "small" means in our environment or our application. How many lines of code? Some say 100 is the magic number. How many logical operations? You can see where that may make us review philosophy books!

I prefer an alternate term, probably a synonym at this stage, as the "micro" term has stuck. I think a better name reflecting a better concept is Independent Service, or iService. How do we partition an app into a set of independent services (not necessarily micro or nano or any particular size) ? Size is actually irrelevant, as many writers have suggested. It can become relevant after the independence characteristic has been satisfied.

Now the debate inside companies considering adoption would be focused on dependencies and isolation of services, not size. 

Oh, by the way, as a side  note before you leave: after you achieve independence, make the service as small as you can!

Louie Simpson

Senior Software Engineer and Big Data Architect

8 年

What about thinking of a service as managing it's own domain. Partitioning across functional lines. Like a nosql db table per service. for example.

要查看或添加评论,请登录

Nabil Hijazi的更多文章

  • Groovy Fun with Git - Part 3 of 3

    Groovy Fun with Git - Part 3 of 3

    Design and Coding of the Groovy Script When I started considering Groovy as an alternative for Bash scripting my goals…

  • Groovy Fun with Git - Part 2 of 3 - Using the Groovy Script

    Groovy Fun with Git - Part 2 of 3 - Using the Groovy Script

    In Part 1, I introduced a simple script to help explore the Git data structures, as we do simple experiments with git…

  • Groovy Fun with Git - Part 1 of 3

    Groovy Fun with Git - Part 1 of 3

    Pro Git, Scott Chacon's great book on Git, has a chapter on Git internals that is a must read, if you want to take a…

  • Microservices and Database Replication

    Microservices and Database Replication

    In a previous post, I discussed briefly the issue of data sharing in microservices. The consensus seems to be that each…

    2 条评论
  • Why Microservices Are Hard

    Why Microservices Are Hard

    Microservices are the latest incarnation of a "software brick" - an independent software component. A software…

  • Database Considered Harmful?

    Database Considered Harmful?

    Think "Events" (not CRUD) As you dip your toes into the world of microservices, you start thinking this is great stuff,…

  • Data and Microservices

    Data and Microservices

    When you first meet the concept of microservices, you find it striking how simple the ideas are. They are also not new.

    3 条评论
  • Decomposing into Microservices

    Decomposing into Microservices

    Event Partitioning: Old Idea from Structured Analysis. A Perfect Fit for Microservices Thinking.

  • Dependency Hell in Microservices and How to Avoid It

    Dependency Hell in Microservices and How to Avoid It

    In my previous post I talked about independence being THE defining characteristic for a microservice. It is also the…

    1 条评论
  • Why I am Passionate about Microservices

    Why I am Passionate about Microservices

    In the last 30 years or so I have designed and implemented a fair number of OO (Object Oriented) systems. I have always…

社区洞察

其他会员也浏览了