More on this book
Community
Kindle Notes & Highlights
Started reading
January 14, 2020
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
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.
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?
Its performance is good enough for the required use case, under the expected load and data volume.
The system prevents any unauthorized access and abuse.
fault is not the same as a failure
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.
by randomly killing individual processes without warning.
Our first response is usually to add redundancy to the individual hardware components in order to reduce the failure rate of the system.