What is the core essence of a good micro service architecture? - KeynesYouDigIt/Knowledge GitHub Wiki

Microservices or any Service Oriented Architecture (SOA)

These create a forcing function for Separation of concerns. Anything shared between services, including direct inter-service dependency itself, MUST be justified and minimized.

"Micro" is an ideal state usually, but medium and even large services, are reasonable as steps or even final states if truly easier to implement.

When to make things smaller, When not to

Similar to functions, any service that is difficult to describe or replace is potentially taking up too many brain cells and team effort (costs) when work is done on it. It is likely hard to make interoperable as well, and is likely dangerous to expose to external systems at all. However, isolation includes fixed and maintenance costs. Given a few plan options where the maintenance costs of a more separated system are less than the maintenance costs are less than that of the current system, the team should start figuring out what the cost of the work to get to that better system is to find the right time to make the move

^^ need to write the same but with clearer business relevance...

Closely related

_Q: How can you create and maintain the separation of concerns in code?