Video: https://www.parleys.com/tutorial/life-beyond-illusion-present
Summary: The idea of the present is an illusion. Everything we see, hear and feel is just an echo from the past. But this illusion has influenced us and the way we view the world in so many ways; from Newton’s physics with a linearly progressing timeline accruing absolute knowledge along the way to the von Neumann machine with its total ordering of instructions updating mutable state with full control of the “present”. But unfortunately this is not how the world works. There is no present, all we have is facts derived from the merging of multiple pasts. The truth is closer to Einstein’s physics where everything is relative to one’s perspective.
As developers we need to wake up and break free from the perceived reality of living in a single globally consistent present. The advent of multicore and cloud computing architectures meant that most applications today are distributed systems—multiple cores separated by the memory bus or multiple nodes separated by the network—which puts a harsh end to this illusion. Facts travel at the speed of light (at best), which makes the distinction between past and perceived present even more apparent in a distributed system where latency is higher and where facts (messages) can get lost.
The only way to design truly scalable and performant systems that can construct a sufficiently consistent view of history—and thereby our local “present”—is by treating time as a first class construct in our programming model and to model the present as facts derived from the merging of multiple concurrent pasts.
In this talk we will explore what all this means to the design of our systems, how we need to view and model consistency, consensus, communication, history and behaviour, and look at some practical tools and techniques to bring it all together.
41. "The assignment statement is the von Neumann bottleneck of
programming languages and keeps us thinking in word-at-a-time terms
in much the same way the computer's bottleneck does."
— John Backus (Turing Award lecture 1977)
48. "When bookkeeping was done with clay tablets or paper and ink,
accountants developed some clear rules about good accounting
practices. One never alters the books; if an error is made, it is
annotated and a new compensating entry is made in the books. The
books are thus a complete history of the transactions of the business.
Update-in-place strikes many systems designers as a cardinal sin: it
violates traditional accounting practices that have been observed for
hundreds of years."
— Jim Gray (1981)
58. WE NEED TO DECOMPOSE THE SYSTEM USING
CONSISTENCY BOUNDARIES
59. INSIDE DATA: OUR CURRENT PRESENT
OUTSIDE DATA: BLAST FROM THE PAST
BETWEEN SERVICES: HOPE FOR THE FUTURE
— PAT HELLAND (DATA ON THE INSIDE VS DATA ON THE OUTSIDE)