The issue of service granularity is a fascinating, perhaps even controversial, topic. On the one hand, a significant fraction of the software development community appears to believe that a single service, i.e. a monolith, is the way to go. Yet on the other hand, there are many organizations that appear to be happy with a fine-grained MICROservice architecture that has multiple services per developer.
From my perspective, the monolithic architecture and the microservice architecture are both legitimate ways of organizing an application’s subdomains. The trick, of course, is to pick the one that’s best for your application. And, then, if you pick the microservice architecture, the challenge is defining your service boundaries correctly.
In this article, I’ll talk about service granularity and share some thoughts about what degree of granularity I think is appropriate.