Comment by masfoobar

Comment by masfoobar 2 days ago

2 replies

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!

pyuser583 2 days ago

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.

  • masfoobar a day ago

    I made a lot of uses for the Push-Pull pattern in ZeroMQ.. but there was others used as well here and there (Pub-Sub, etc)

    However -- I cannot praise the use of ROUTER-DEALER !! What a GREAT pattern for sending large chunks of data without waiting for a reply for each.

    HTTP is not fit for such a task.

    However - I totally get you! Trying to explain certain decisions really does take up time and effort. Before you know it, I have lost 4 hours one day, a few another, etc.

    In the end you ask if I should have done something mediocre... but everyone understands.

    ("mediocre" is not the correct word to use. I mean I could have gone with Kafka or RabbitMQ. It's just an extra layer which would have involved infrastructure and further delays (at that time))