The silent assassin that knows no mercy - how *coupling* chokes software (part III)

This is part III of coupling consideration topic. If you want to check my past coupling-related posts, you can find them here: Part I - the theory of coupling Part...

4 years ago

Latest Post Mixing warsaw.ex by Sebastian Gebski

This is part III of coupling consideration topic. If you want to check my past coupling-related posts, you can find them here:

Now it's time for Part III - let's bring up some ideas about how to fight the coupling off. To make things more spicey, let's start with the most tricky one - the run-time coupling.

What do want to achieve?

We want to make sure that:

  1. Disruption of one service has a minimal impact on other services.
  2. Upgrade or any other non-failure-related maintenance action on one services can be performed without disrupting the actual service.
  3. If one of the services fails somehow and it's just one of the service called indirenctly, it's still possible to quickly find the actual point of failure

The obvious obviousness

The points above can be easily addressed using the following ideas:

Awesome, but it won't work here ...

Unfortunately, in many cases brokered MOMs are out-of-the-question. UI-centric solutions usually require immediate responses, systems are not designed for asynchronuous operations and the calls have to be request-response. What then?

Routing (aka dynamically changing your connection endpoint details in real-time) is your word.

If you have to maintain point-to-point connections, you need to find an agile way to re-route the communication (in run-time, in a matter of seconds after making the decision about change) once:

So, in short words - what you need is a run-time configuration server that:

Don't worry, we've got something for you

Fortunately, you don't have to create such a configuration server on your own - there are solutions perfectly (or almost) fit for that purpose:

If you want to check out ZooKeeper's features, start here or get this book - a recommended read!

Consul is still very fresh (it's first release has been published just few days ago), but even before it was officially released, it has been tested & proven in production scenarios.

In next episode, my own hands-on-experience while using all the three tools mentioned above. Stay in touch.

Sebastian Gebski

Published 4 years ago

Comments?

Leave us your opinion.

Subscribe our newsletter

Recieve news directly to your email.

No Kill Switch © 2018.