DEV Community

Discussion on: 7 Microservices Best Practices for Developers

 
siy profile image
Sergiy Yevtushenko

In majority of cases services don't do any heavy-lifting and usually I/O bounded (most often - DB bounded). In this case advertised microservice-style scaling by adding more instances is useless.

And microservices itself are not a solution which can prevent bankrupcy of the company. Actually microservices just enforce cleanup/rework of the design of the system. And this cleanup/rework is the main source of improvement. But it can be done without microservices as well, just not everybody realize that.

Thread Thread
 
andreidascalu profile image
Andrei Dascalu

If you can tell me how to scale independent domains of a large monolith without breaking it into separate applications (micro or not) please share :)

Thread Thread
 
siy profile image
Sergiy Yevtushenko

Beside breaking monolith into a set of separate applications, there is another option - embed services consisting monolith into data grid node. It has most benefits of microservices along with a number benefits unique to this approach. And it avoids all downsides of microservices and monoliths.
With this approach there are several ways to scale:

  • nearlty linear horizontal scaling by adding more nodes to the grid
  • scaling computationally-intensive services by running more instances of services at different nodes
  • scaling by using "data affinity" - colocating related data at same nodes and performing procesing at these nodes (i.e. instead of fetching all data every time they're necessary, process data locally at nodes which hold the data). In addition there is possibility to maintain several data replicas, so processing can be scaled by adding more replicas.

So, yes, there are alternative approaches, but they are not hype. Perhaps because they don't feed cloud providers as good as microservices :)