Information systems are not reliable by nature, since any component can fail; however, it is possible to improve a system's reliability and availability by distributing them among redundant components, and these components can represent individual service layers, each one with a higher level of cohesion.
Imagine the following scenario: I wish to deliver a letter and receive a confirmation when the letter has arrived. I only know the sender address and the post office that the letter must be picked up from:
This letter represents the content of the message I want to deliver, but in the process, some problems may arise. If I deliver the letter personally, I may run the risk of not finding the recipient in time, so I will need to return again, and if the delivery must be done across many areas of the world, additional considerations such as...