I vividly remember the microservices craze! I’ve been part of it. Breaking down evil monoliths and configuring RabbitMQ instances day-in and out was my job.
For some reason, it felt easier to configure new machines, containers, clusters, and peel off code into dedicated services, than to write better modules.
Since that time (2015-2019) I’ve grown to hate the amount of infrastructure and maintenance complexity such a concept brings. It’s hell on wheels, especially for a small company. Even if you make it work, assuming you have an in-house product, you don’t have an ice-cream’s chance in hell to keep up if you do this for multiple clients and must also maintain everything.
Microservices are maintenance hell, because of the extra levels of complexity they bring.
One might say that it works ok for googles and the amazons of the world. They're right, it does work, mostly because such companies are the inventors and promoters of that stuff. But it will probably bring a ton of misery for a 10-people shop. It’s hard enough to maintain a single, coherent codebase! How would you develop the discipline required to do it at scale?
Short answer(s): You don’t. You can’t. You won’t.
Even the Amazon Prime team ended up reverting to a glorious monolith, so focus on writing better code and making better tech choices. That's how you win!
For some reason, it felt easier to configure new machines, containers, clusters, and peel off code into dedicated services, than to write better modules.
Since that time (2015-2019) I’ve grown to hate the amount of infrastructure and maintenance complexity such a concept brings. It’s hell on wheels, especially for a small company. Even if you make it work, assuming you have an in-house product, you don’t have an ice-cream’s chance in hell to keep up if you do this for multiple clients and must also maintain everything.
Microservices are maintenance hell, because of the extra levels of complexity they bring.
One might say that it works ok for googles and the amazons of the world. They're right, it does work, mostly because such companies are the inventors and promoters of that stuff. But it will probably bring a ton of misery for a 10-people shop. It’s hard enough to maintain a single, coherent codebase! How would you develop the discipline required to do it at scale?
Short answer(s): You don’t. You can’t. You won’t.
Even the Amazon Prime team ended up reverting to a glorious monolith, so focus on writing better code and making better tech choices. That's how you win!