Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Rate it:
Open Preview
0%
Flag icon
a great thing. However, as software engineers and architects, we also need to have a technically accurate and precise understanding of the various technologies and their trade-offs if we want to build good
1%
Flag icon
e.g., that the cache will be correctly invalidated or updated on writes so that outside clients see consistent results. You are now not only an application developer, but also a data system designer.
1%
Flag icon
data remains correct and complete, even when things go wrong internally? How do you provide consistently good performance to clients, even when parts of your system are degraded?
1%
Flag icon
Its performance is good enough for the required use case, under the expected load and data volume.
1%
Flag icon
The system prevents any unauthorized access and abuse.
1%
Flag icon
fault is not the same as a failure
1%
Flag icon
It is impossible to reduce the probability of a fault to zero; therefore it is usually best to design fault-tolerance mechanisms that prevent faults from causing failures.
1%
Flag icon
by randomly killing individual processes without warning.
1%
Flag icon
The Netflix Chaos Monkey [4] is an example of this approach.
Dinesh Singh
Chaos monkey is a Netflix system which introduces faults into the system
1%
Flag icon
Our first response is usually to add redundancy to the individual hardware components in order to reduce the failure rate of the system.
1%
Flag icon
RAID configuration,
Dinesh Singh
Redundant array of disks