System Design
Table of Contents
Checkout the System Design Index
1. Major Aspects
1.1. Scalability
- the ability of a system to continue to behave as expected in the face of significant upward or downward changes in demand.
1.2. Loose Coupling
- the system property and design strategy in which a system's components have minimal knowledge of any other components.
- internal changes to one don't demand changes in the other
- web servers and web browsers for instance are loosely coupled given both have certain guarantees.
1.3. Enablement
- Having a Protocol allows standardizing the input expectations and output assurances of a component.
- These may be addressed as Interfaces as well.
1.4. Resilience
- see also fault tolerence
- the measure of how well a system withstands and recovers from errors and faults
1.5. Manageability
- the ease with which a system's behaviour can be modified to keep it secure, running smoothly, and compliant with changing requirements.
1.6. Observability
- the measure of how well a system's internal states can be inferred from knowledge of its external outputs.