If you have a complex problem, decompose it into individual, manageable parts; isolate them, and focus on unique strategies to avoid failure. This way, a component crash will not affect other components since you will be avoiding dependencies and providing insulating mechanisms to manage communication between layers; this is an architectural best practice.
Dividing and conquering
Serial configuration
Serial configuration is a technique that provides a reference to calculate coupling when they have strong dependencies between each other. In order to understand the availability of two components, we have to calculate the individual value for each component; for example, a database instance (RDS) and its persistent storage (EBS...