Issue #94
Curated list of blogs, videos, papers, podcasts on programming and distributed systems.
“You have power over your mind - not outside events. Realize this, and you will find strength.”
― Marcus Aurelius
Posts
The Weighted Byzantine Distributed Agreement Problem
It turns out that with this approach- sending confirmations of confirmations, you will never be able to come up with a fail proof method of getting your app and the restaurant’s to agree on your order. - #javierpalomares
Software Engineering Advice from Building Large-Scale Distributed Systems
Lessons drawn from work across a broad range of areas
– Products (ad serving systems, AdSense, four generations of web search crawling, indexing, and query serving systems, Google News, statistical machine translation, Google Codesearch, etc.)
– Infrastructure (core indexing/search product components, MapReduce, BigTable, cluster scheduling systems, indexing service, core libraries, etc.)
– Software tools (profiling systems, fast searching over source tree, etc.) - #googleusercontent #jeff #dean
Untangling Microservices, or Balancing Complexity in Distributed Systems
What is going on here? Why so many projects became unmaintainable, despite the microservices’ promise of simplicity and flexibility? Or maybe monoliths are better, after all? In this post, I want to address these questions. - #vladikk
Your configs suck? Try a real programming language.
I'll try to explain why I find most config formats frustrating to use and suggest that using a real programming language (i.e. general purpose one, like Python) is often a feasible and more pleasant alternative for writing configs. - #beepb00p
How we abused Slack's TURN servers to gain access to internal services
Slack’s TURN server allowed relaying of TCP connections and UDP packets to internal Slack network and meta-data services on AWS. - #rtcsec
Systems that defy detailed understanding
Last week, I wrote about the mindset that computer systems can be understood, and behaviors can be explained, if we’re willing to dig deep enough into the stack of abstractions our software is built atop. .... this followup, in which I want to run through a few classes of systems where I’ve found pursuing in-detail understanding of the system wasn’t the right answer. - #nelhage
The Ten Rules for Data Modeling with DynamoDB
But modeling your data in DynamoDB is significantly different than modeling in a traditional relational database. And if you try to model your DynamoDB table like your relational database, you'll be in a world of hurt. - #trek10
Videos
Why Does (My) Monitoring Suck? - Todd Palino
Making Multi-Environment Service Networking on Microsoft Azure Easy With Consul
Books
Security Engineering — Third Edition
Security engineering is about building systems to remain dependable in the face of malice, error, or mischance. As a discipline, it focuses on the tools, processes, and methods needed to design, implement, and test complete systems, and to adapt existing systems as their environment evolves. - #cam
Building Secure and Reliable Systems
Can a system be considered truly reliable if it isn't fundamentally secure? Or can it be considered secure if it's unreliable? Security is crucial to the design and operation of scalable systems in production, as it plays an important part in product quality, performance, and availability. In this book, experts from Google share best practices to help your organization design scalable and reliable systems that are fundamentally secure. - #google
This book contains everything you need to implement a full-featured, efficient scripting language. You’ll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. - #craftinginterpreters
Do you have any interesting blog, podcast, video, book? Submit a link here and if its suitable will appear with credits in newsletter.