Micro-service architecture and the human body
No it does not. It might hurt big-time, and I might need to get some help on the long term, but the first few minutes, seconds or maybe even hours, my brain will probably ignore the signals sent by the nerve receptors, and I should probably try to reduce the amount of blood loss I have. My adrenaline levels will rise, I will ignore the pain signals, and I might be able to run faster and longer then I ever imagined. The information highwayThink about the way our body communicates with our brain: the brain has two main paths for communicating with the body: the nerves and the blood vessels. They both have a distinct function:
This is a gross simplification, but is in essence how your body works. Some remarks
This brings us to the MSADoes your brain know how your nerves and blood vessels are organised? I don’t think so; what matters to the brain is cause and consequence. MSA’s work just like that:
The gist of itHere’s the difference between SOA and MSA: as long as the “hormones”(=used to generate business metrics) do not signal a problem, you don’t care about the organs (i.e. individual services), f.e. if you don’t know what a service is doing, just shut it down. If the business metrics don’t show it, it was useless. If people start making a fuss about it, add the proper business metric, and reboot the service. Have an extra feature or a customer-specific thing? Just let both services run, and let the one processing those responses decide which answer to take. Does a service fail? As long as your business metrics don’t show it, you don’t have a problem… In fact, because your business rules might change every once in a while, services will get redundant. Embrace failure and shut-down services at random during office hours. If your business metrics show failure, make sure that there are always at least 2 of them running, so the next time one of them fails, you will no longer have that issue… Or just write another service - after all, it’s just a couple of 100 lines - that does what it is supposed to do, and maybe even way better then before. If a system fails, you go back to the nerves to check what might be the cause, or just decide to fix it by launching another service. Experience will tell you. Where all of this is coming fromAs Nassim Taleb explains in Antifragile: Things That Gain from Disorder The essence of MSA is monitoring the “what”, while EDA and SOA typically monitor the “how”. You don’t care about how the system works, just that it works… If it fails, you fix it by adding another service or adjusting the existing service. By making failure a non-event, you become essentially resistant to it. |
Availability >