Issue #119
Testing distributed systems, Social engineering scam, Two phase commit, Dapper, Circuit breakers and what does listening on a port means?
Without music, life would be a mistake.
- Friedrich Nietzsche
Posts
When data needs to be atomically stored on multiple cluster nodes, Cluster nodes cannot make the data accessible to clients before the decision of other cluster nodes is known. Each node needs to know if other nodes successfully stored the data or they failed. - #martinfowler #unmeshjoshi
Will circuit breakers solve my problems?
The A-H shard will get a lot of load, while the others might get little. Calls for A-H may start failing, while calls for other keys keep working.That presents the circuit breaker with a problem. Is this database down? Have failures reached a threshold?If you say yes, it's down, then you've made service worse for Jane and Tracy. If you say no, it's not down, then you may as well not have the breaker at all. Breakers that don't trip aren't very useful - #brooker #blog
Automated reasoning's scientific frontiers
For over two decades the automated-reasoning scientific community has postulated that distributed-systems-based proof search could be faster than sequential proof search. But we didn’t have the economic scale to justify serious investigation of the question.At Amazon, with our increased reliance on automated reasoning, we now have that kind of scale. For example, we sponsored the new cloud-based-tool tracks in several international competitions. - #amazon #science #blog
AWS S3: Why sometimes you should press the $100k button
TLDR: Mere mortals implement best practices for S3 read and write performance, create a million billion s3 objects with their high performance system, try to clean up the really really expensive mess and find themselves in a dimension as vast as space and as timeless as infinity. - #cyclic #blog
Obviously something silly is going on, and people usually stop there. But Go’s actual version control history is richer and more interesting. For example, there are a few more fake commits and then the fifth commit is the first real one:
commit 18c5b488a3b2e218c0e0cf2a7d4820d9da93a554Author:
Robert Griesemer <gri@golang.org>
AuthorDate: Sun Mar 2 20:47:34 2008 -0800
Commit: Robert Griesemer <gri@golang.org>
CommitDate: Sun Mar 2 20:47:34 2008 -0800
Go spec starting point.
SVN=111041
doc/go_spec | 1197 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1197 insertions(+)
Why does that commit have a different trailer than the three fake commits? - #swtch #blog #russcox
What does it mean to listen on a port?
“Well, what does it mean to listen on a port?”“It means that other processes can connect to it on that port.” Tim looks confused at the question. “Yeah, I know that, but how?” Tim considers it for a few seconds before replying. “I guess the operating system has a big table of ports and the process listening on them. When you bind to a port, it puts a pointer to your socket in that table.” ... Liz takes the opportunity to get his attention again.“Hey Tim, look, I’m running two processes bound to the same port at the same time.”
- #paulbulter #blog
List of resources on testing distributed systems curated by Andrey Satarin - #asatarin #github
The Harmful Consequences of the Robustness Principle
The robustness principle, often phrased as "be conservative in what you send, and liberal in what you accept", has long guided the design and implementation of Internet protocols. The posture this statement advocates promotes interoperability in the short term, but can negatively affect the protocol ecosystem over time. For a protocol that is actively maintained, the robustness principle can, and should, be avoided.
#ietf #archive #draft
Exposing a web service with Cloudflare Tunnel
What if you could host a web service with no ports exposed? With Cloudflare Tunnel, you can!
#erisa
Twitter thread
Papers
Using lightweight formal methods to validate a key-value storage node in Amazon S3
Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
Video
System Design Interview – Step By Step Guide
Stages of a typical system design interview:
functional requirements (API), non-functional requirements, high-level design, detailed design, bottlenecks and tradeoffs.
Good to see you back with these newsletters. :-)
Glad to see you are back. Missed your newsletters last year.