Availability Example
Note
Let us consider scenarios through an example. Imagine you are addressing the availability of a system. In addition to focusing on when a system is online and behaving normally, you have to consider situations where the system becomes unavailable.
In a general scenario, high-level events are summarized. As a single scenario may involve many component values, it often summarized in a table.
| Scenario Component | Scenario Component Value |
|---|---|
| Stimulus Source | - End user - Internal subsystems - External subsystems |
| Stimulus | - Incorrect user input - Internal exceptions - Unrecognized system request - High request volume - Heavy system load |
| Environment | - Normal operating environment - Starting up - Shutting down - Heavy load operating environment - Recovering from error - Processing request |
| Artifact | - System servers - System process |
| Response | - Log exceptions - Notify user - Send error response to external system - Redistribute data processing - Redistribute system requests - Notify user and external systems that the system is shutting down/starting up |
| Response Measure | - Time to restart (shutdown and startup sequence) - Time to undergo recovery - Time to complete requests when the request volume is high - Time to complete a process under heavy system load - Time to become available after encountering an incorrect input or request |
Concrete scenarios are more focused. They can help you test an architecture with a specific stimulus under specific system environments and measure how well the system can respond.
Let us expand our example on availability. Availability of a web server can be hindered in its ability to process requests when at resource limits or under heavy load. A server’s availability should be measured under different conditions.
Consider the specific concrete scenario below, where a customer needs to wait for the system to finish processing previous orders for concert tickets before they are able to send their purchase request. The system is unavailable for customers if the system can’t accept their request for tickets, which has a negative effect on the availability quality attribute of the system.
