Design Data-Intensive Applications¶
Chapter 1 Reliable, Scalable, and Maintainable Applications¶
Requirement | Aspects |
---|---|
Reliability | Tolerating hardware & software faults, Human error |
Scalability | Measuring load & performance, latency percentiles, throughput |
Maintainability | Operability, simplicity, and evolvability |
Reliability¶
Expectations:
- Performs the function that the user expected.
- Tolerate user making mistakes or using it in an unexpected way.
- Performance is remains good for required use cases, under expected load and data volume.
- Prevent unauthorized access and abuse.
Concepts:
- Faults: usually defined as one components deviating from its spec.
- Failure: a whole system stop provide the required service to the user.
- Fault tolerance or resilient: prevention v.s. cure faults.