Comment by masfoobar
I am a big fan of 'do one thing and one thing well' -- that UNIX philosophy.
Whether it's a program that does something well... or simply a function/procedure --- it all depends on the problem I/we are trying to solve.
I never liked using the word "Microservices" but my aim has always to build SIMPLE solutions. I learn new words in this world. For the most part I am building "Miniservices" but there are a few that are considered "Microservices" but again are not complicated!
I just like to refer it as "Distributed Computing" because the solution can be anywhere between Monolithic or Microservices. Truth is you are building a combination of them that communicate in one form or another.
I will always remember a Till system (past job) that was sending data to the server poorly and slowly with a Monolithic solution and a Database. Was it becoming a pain to handle with new shops being added in Europe? Yes. However, this is NOT the fault of Monolithic. It's just the solution that was used for "good" originally but is struggling now.
The solution I replaced it with allowed data being sent to the server using ZeroMQ. It worked out well.. was fast and reliable. Each section was broken down on the server. Again - is it is perfect solution or does it prove that "Monolithic is worse that Micrsoservices" (or Distributed Computing) -- NO! Truth is our software is a mix of them all!
I personally think ZeroMQ is severely underutilized. Fixes so many problems.
But it can be hard to encourage adoption. It’s not HTTP, or a conventional queue system.
Requires lots of explanations, thinking, and eventually meetings.