Issue #84
Curated list of blogs, videos, papers, podcasts on programming and distributed systems.
Monoliths are the future because the problem people are trying to solve with microservices doesn’t really line up with reality.
— Kelsey Hightower
Posts
Building for Multi-Petabyte Scale, Part 1
We’ll discuss one of the most important aspects of designing any system: getting the requirements right. Many projects and products start first from the wrong requirements and end up at the wrong destination. - #cribl #blog
Work Is Work
At some point in time, every organization realizes that it’s slowing down. Features take longer to ship, folks spend more and more time in meetings, and everyone gets panicky about estimation and planning. - #Codehale
Composition in Distributed Systems
In this post, I’ll talk about how key insights around compositionality, a trait that is much desired and utilised in language semantics, can simplify the challenge of designing and explaining realistic distributed systems. - #blog #sigplan
Quorum clock: leaderless distributed clock
When an execution of a program limited by one computer the local timer plays a role of absolute clock and we can use our intuitive perception of time to reason about the behavior. But when a program is distributed we enter the relativity domain and must think like physicists. It may seem like an exaggeration but it very easy to run into time anomalies - #rystsov
Towards a Conversational Agent that Can Chat About Anything
We present Meena, a 2.6 billion parameter end-to-end trained neural conversational model. We show that Meena can conduct conversations that are more sensible and specific than existing state-of-the-art chatbots - #googleblog #ai
Building personal search infrastructure for your knowledge and code
These days, if you have decent connection, you are seconds away from finding almost any public knowledge in the internet. However, there is another aspect of information: personal and specific to your needs, work and hobbies. It's your todo list, your private notes, books you are reading - #beepb00p
Monoliths are the future
Monoliths are the future because the problem people are trying to solve with microservices doesn’t really line up with reality. - #changelog
My Second Year as a Solo Developer
Two years ago, I quit my developer job at Google to build my own software business. A year later, I posted an update about my finances, happiness, and lessons learned. Today marks the end of my second year, so it's time for another update. - #mtlynch
Book
Notes on Theory of Distributed Systems
#arxiv
Papers
Pregel: A System for Large-Scale Graph Processing
Many practical computing problems concern large graphs. Standard examples include the Web graph and various social networks. The scale of these graphs—in some cases billions of vertices, trillions of edges—poses challenges to their efficient processing. In this paper we present a computational model suitable for this task. Programs are expressed as a sequence of iterations, in each of which a vertex can receive messages sent in the previous iteration, send messages to other vertices, and modify its own state and that of its outgoing edges or mutate graph topology. This vertexcentric approach is flexible enough to express a broad set of algorithms. The model has been designed for efficient, scalable and fault-tolerant implementation on clusters of thousands of commodity computers, and its implied synchronicity makes reasoning about programs easier. Distributionrelated details are hidden behind an abstract API. The result is a framework for processing large graphs that is expressive and easy to program. - #github #kowshik
Reverb: speculative debugging for web applications
Reverb has three features which enable a fundamentally more powerful debugging experience. First, Reverb tracks precise value provenance, allowing a developer to quickly identify the reads and writes to JavaScript state that affected a particular variable’s value. Second, Reverb enables speculative bug fix analysis… Third, Reverb supports wide-area debugging for applications whose server-side components use event-driven architectures. - #acolyer #blog