Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Rate it:
Open Preview
7%
Flag icon
The moral of the story is that a NoSQL system may find itself accidentally reinventing SQL, albeit in disguise.
18%
Flag icon
data outlives code.
Tarek Amr and 2 other people liked this
21%
Flag icon
The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair. Douglas Adams, Mostly Harmless (1992)
38%
Flag icon
Hey I just met you The network’s laggy But here’s my data So store it maybe
Mohamed Elsherif
LOL
38%
Flag icon
In distributed systems, suspicion, pessimism, and paranoia pay off.
Mosab and 6 other people liked this
43%
Flag icon
However, a real implementation may still have to include code to handle the case where something happens that was assumed to be impossible, even if that handling boils down to printf("Sucks to be you") and exit(666) — i.e., letting a human operator clean up the mess [93]. (This is arguably the difference between computer science and software engineering.)
Mohamed Elsherif
Real words of wisdom, CS vs SWE
Mervat liked this
48%
Flag icon
Lamport
49%
Flag icon
Thus, although the FLP result about the impossibility of consensus is of great theoretical importance, distributed systems can usually achieve consensus in practice.
Mohamed Elsherif
Science vs Engineering
66%
Flag icon
If you are mathematically inclined, you might say that the application state is what you get when you integrate an event stream over time, and a change stream is what you get when you differentiate the state by time,
Mohamed Elsherif
Nice analogy
66%
Flag icon
Truly deleting data is surprisingly hard
Ahmed liked this
70%
Flag icon
(Often quoted as: If the highest aim of a captain was the preserve his ship, he would keep it in port forever.) St. Thomas Aquinas, Summa Theologica (1265–1274)
76%
Flag icon
In slogan form: violations of timeliness are “eventual consistency,” whereas violations of integrity are “perpetual inconsistency.” I am going to assert that in most applications, integrity is much more important than timeliness.
76%
Flag icon
an effect that can be used to break security mechanisms in operating systems [63] (this technique is known as rowhammer).
77%
Flag icon
Naturally, payment networks want to prevent fraudulent transactions, banks want to avoid bad loans, airlines want to avoid hijackings, and companies want to avoid hiring ineffective or untrustworthy people. From their point of view, the cost of a missed business opportunity is low, but the cost of a bad loan or a problematic employee is much higher, so it is natural for organizations to want to be cautious. If in doubt, they are better off saying no. However, as algorithmic decision-making becomes more widespread, someone who has (accurately or falsely) been labeled as risky by some algorithm ...more
Mohamed Elsherif
The Algorithmic Prison
Mervat liked this
77%
Flag icon
“machine learning is like money laundering for bias”
Mosab liked this
78%
Flag icon
A credit score summarizes “How did you behave in the past?” whereas predictive analytics usually work on the basis of “Who is similar to you, and how did people like you behave in the past?”
78%
Flag icon
“it is poor civic hygiene to install technologies that could someday facilitate a police state”
Mosab
· Flag
Mosab
I see you are almost done with the book. :)
Mohamed Elsherif
· Flag
Mohamed Elsherif
I finished it already, great book, but definitely needs another read 😅