Please enable JavaScript.
Coggle requires JavaScript to display documents.
Designing Data-Intensive Applications (Chapter 1 (Terminology (Scalability…
Designing Data-Intensive Applications
Chapter 1
Terminology
Reliability
The system should continue to work correctly even in the face of adversity.
Fault Tolerant or Resilient
System that anticipate faults and can cope with them
Hardware Faults
Redundancy[冗余]
Software Errors
Recoverable
Blast Radius
Monitor
Human Errors
Well designed abstraction, APIs and interfaces
Decouple
What in Software Errors
Scalability
As the system grows(in data volume, traffic volume, or complexity), there should be reasonable ways of dealing with that growth.
Load
Load can be described with a few numbers which we called load parameters.
Performance
What happens when load increases
Throughput
Response Time
Percentile, such as median(p50) - SLA(service level agreements)
Tail Latency
Head-of-line Blocking
Scale
scaling up (vertical scaling, moving to a more powerful machine)
scaling out (horizontal scaling, distributing the load across multiple smaller machines)
share nothing
Maintainability
Over time, many different people will work on the system, and they should all be able to work on it productively
Operability
Simplicity
abstraction
Evolvability
Chapter 2
Data Models