Burn Your Laurels Network Evolution, The Consistency Treadmill, & Transcending Spacetime
Slide 2
Burn Your Laurels Network Evolution, The Consistency Treadmill, & Transcending Spacetime
Slide 3
Slide 4
Slide 5
That’s one heck of a network partition
Slide 6
Slide 7
Not to be bound by certain ‘obvious’ methodological rules […] is both reasonable and absolutely necessary for the growth of knowledge. […] There are always circumstances when it is advisable not only to ignore the rule, but to adopt its opposite. – Paul Feyerabend, Against Method
Brooklyn Zelenka @expede
• CTO at Fission (https://fission.codes) • Local-first, globally distributed, trustless • PLT, VMs, DSys • Original author of Witchcraft, Algae, Exceptional, etc • Standards: UCAN (editor), EIPs, FVM, Multiformats, others • Founded VanFP, VanBEAM, DSys Reading Group (join us!)
Slide 14
Brooklyn Zelenka @expede
• CTO at Fission (https://fission.codes) • Local-first, globally distributed, trustless • PLT, VMs, DSys • Original author of Witchcraft, Algae, Exceptional, etc • Standards: UCAN (editor), EIPs, FVM, Multiformats, others • Founded VanFP, VanBEAM, DSys Reading Group (join us!)
https://lu.ma/distributed-systems
Slide 15
I have stickers!
Slide 16
Meta 🔄
Let’s Change Everything! (kthxbye)
Part I: Empex MTN 🇺🇸 Part II: CodeBEAM EU 🇸🇪
Slide 17
Meta 🔄
We ❤ BEAM
Slide 18
Meta 🔄
We ❤ BEAM The BEAM does so much right 👏
Slide 19
Meta 🔄
We ❤ BEAM The BEAM does so much right 👏 In many ways, we’re actually ahead of the industry
Slide 20
Meta 🔄
We ❤ BEAM The BEAM does so much right 👏 In many ways, we’re actually ahead of the industry …but as our ideas spread, this lead won’t last
Slide 21
Meta 🔄
We ❤ BEAM The BEAM does so much right 👏 In many ways, we’re actually ahead of the industry …but as our ideas spread, this lead won’t last The world changing around us 😃😨
Slide 22
Meta 🔄
We ❤ BEAM The BEAM does so much right 👏 In many ways, we’re actually ahead of the industry …but as our ideas spread, this lead won’t last The world changing around us 😃😨 Let’s ask uncomfortable questions to find new directions for growth
Slide 23
Meta 🔄
We ❤ BEAM The BEAM does so much right 👏 In many ways, we’re actually ahead of the industry …but as our ideas spread, this lead won’t last The world changing around us 😃😨 Let’s ask uncomfortable questions to find new directions for growth
Slide 24
Meta 🔄
Random Walk
Image by Pradyumna Yadav
Slide 25
Meta 🔄
Random Walk
Image by Pradyumna Yadav
Slide 26
Meta 🔄
Random Walk
Image by Pradyumna Yadav
Slide 27
Meta 🔄
Random Walk
Image by Pradyumna Yadav
Slide 28
Meta 🔄
Random Walk
Image by Pradyumna Yadav
Slide 29
Meta 🔄
Random Walk 😄
Image by Pradyumna Yadav
Slide 30
Meta 🔄
Random Walk 😍 😄 😭
Image by Pradyumna Yadav
Slide 31
Meta 🔄
Random Walk 😍 🧐 😄 😭
Image by Pradyumna Yadav
Slide 32
Meta 🔄
A Cambrian Explosion of Approaches!
CC BY-SA 3.0: mariowiki.com
Slide 33
Meta 🔄
A Cambrian Explosion of Approaches!
☎→⚗→Gj CC BY-SA 3.0: mariowiki.com
Slide 34
Meta 🔄
A Cambrian Explosion of Approaches!
☎→⚗→Gj → 🍊 CC BY-SA 3.0: mariowiki.com
Slide 35
Meta 🔄
A Cambrian Explosion of Approaches!
☎→⚗→Gj → 🍊 → CC BY-SA 3.0: mariowiki.com
Slide 36
Meta 🔄
A Cambrian Explosion of Approaches!
☎→⚗→Gj → 🍊 → →💥 CC BY-SA 3.0: mariowiki.com
Slide 37
Meta 🔄
A Cambrian Explosion of Approaches!
→ ☎→⚗→Gj → 🍊 → →💥 CC BY-SA 3.0: mariowiki.com
Slide 38
Meta 🔄
A Cambrian Explosion of Approaches!
→ 🦋 → ☎→⚗→Gj → 🍊 → →💥 CC BY-SA 3.0: mariowiki.com
Slide 39
Meta 🔄
A Cambrian Explosion of Approaches!
🦄 → → 🦋 → ☎→⚗→Gj → 🍊 → →💥 CC BY-SA 3.0: mariowiki.com
Slide 40
Meta 🔄
Let’s Go Exploring!
Photo credit: Chad Kohalyk
Slide 41
Meta 🔄
Let’s Go Exploring!
• Has the world meaningfully changed? • What are the resulting tradeo s? • Is anything holding us back?
ff
Photo credit: Chad Kohalyk
Slide 42
Meta 🔄
Let’s Go Exploring!
• Has the world meaningfully changed? • What are the resulting tradeo s? • Is anything holding us back?
ff
Photo credit: Chad Kohalyk
Slide 43
Meta 🔄
Balance
Avoid Success at All Cost
Slide 44
Meta 🔄
Balance
Avoid Success at All Cost
Slide 45
Meta 🔄
Where Do We Go From Here?
Are processes central?
Slide 46
How We Got Here
Context & Consequence
🧬
Slide 47
Context & Consequence 🧬
Actors in the Sky
Slide 48
Context & Consequence 🧬
Actors in the Sky
Actors are an amazing fit for cloud computing. …why?
Slide 49
Context & Consequence 🧬
We All Know the Story
Slide 50
Context & Consequence 🧬
We All Know the Story Erlang was designed with a specific objective in mind: “to provide a better way of programming telephony applications.” […] Language features that were not used were removed. – Joe Armstrong, A History of Erlang
Slide 51
Context & Consequence 🧬
Good Design Tradeoffs
Aguilera et al., Designing Far Memory Data Structures: Think Outside the Box (HotOS’19)
Slide 52
Context & Consequence 🧬
Good Design Tradeoffs 🤏 Near Memory
🪐 Far Memory
Aguilera et al., Designing Far Memory Data Structures: Think Outside the Box (HotOS’19)
Slide 53
Context & Consequence 🧬
Good Design Tradeoffs
📍 Feels Local
🤏 Near Memory
🪐 Far Memory
✅
🥳 Hidden, automatic 😱 Leaky abstraction 🛠 Exposing knobs
Aguilera et al., Designing Far Memory Data Structures: Think Outside the Box (HotOS’19)
Slide 54
Context & Consequence 🧬
Good Design Tradeoffs
📍 Feels Local
✉ Feels Remote
🤏 Near Memory
🪐 Far Memory
✅
🥳 Hidden, automatic 😱 Leaky abstraction 🛠 Exposing knobs
🥳 Powerful control 😱 Manual boilerplate 🛠 Adding abstraction
✅
Aguilera et al., Designing Far Memory Data Structures: Think Outside the Box (HotOS’19)
Context & Consequence 🧬
Less is More
💁 💁 💁
🖥 🖥 🖥
⚙ 🗃 🔐 🐙 ⚙ 🗃 “Serverless” 🔐 (Somehow⚙ MORE servers) 🗃
🌩
🔐
Slide 69
Context & Consequence 🧬
So Much Leakage 🚰
Slide 70
Context & Consequence 🧬
So Much Leakage 🚰
• Single source of truth (“the” database)
Slide 71
Context & Consequence 🧬
So Much Leakage 🚰
• Single source of truth (“the” database) • Server-centric • “Full stack development” • DevOps, Docker, k8s • How to train enough engineers?
Slide 72
Context & Consequence 🧬
So Much Leakage 🚰
• Single source of truth (“the” database) • Server-centric • “Full stack development” • DevOps, Docker, k8s • How to train enough engineers?
Slide 73
Context & Consequence 🧬
So Much Leakage 🚰
• Single source of truth (“the” database) • Server-centric • “Full stack development” • DevOps, Docker, k8s • How to train enough engineers? • Infrastructure Hegemony • AWS (47%), Azure (19%), GCP (9%)
Slide 74
Context & Consequence 🧬
So Much Leakage 🚰
Slide 75
Context & Consequence 🧬
So Much Leakage 🚰 …how fix? 🥺
Slide 76
Getting Out of the Painted Corner
New Space to Play 🪁
Slide 77
New Space to Play 🪁
Natural Progression 📈
Slide 78
New Space to Play 🪁
Natural Progression 📈
Slide 79
New Space to Play 🪁
Natural Progression 📈 👀🦺
🫥👻 ff
Invention
Custom
O -the-Shelf
Utility
Slide 80
New Space to Play 🪁
Natural Progression 📈 👀🦺
🫥👻 ff
Invention
Custom
O -the-Shelf
Utility
Slide 81
New Space to Play 🪁
Natural Progression 📈 👀🦺
🫥👻 ff
Invention
Custom
O -the-Shelf
Utility
Slide 82
New Space to Play 🪁
Natural Progression 📈 👀🦺
🫥👻 ff
Invention
Custom
O -the-Shelf
Utility
Slide 83
New Space to Play 🪁
Natural Progression 📈
💶
👀🦺
🫥👻 ff
Invention
Custom
O -the-Shelf
Utility
Slide 84
New Space to Play 🪁
Natural Progression 📈
💶
👀🦺
🫥👻 ff
Invention
Custom
O -the-Shelf
Utility
Slide 85
New Space to Play 🪁
Natural Progression 📈
💶
👀🦺
🫥👻 ff
Invention
Custom
O -the-Shelf
Utility
Slide 86
New Space to Play 🪁
Evolution of Concerns
Rajsbaum & Raynal, 60 Years of Mastering Concurrent Computing Through Sequential Thinking
Slide 87
New Space to Play 🪁
Evolution of Concerns Physical Resource Management
Immaterial Objects
💿
📊
Distributed State Machines
Adversaries, Asynchrony, Failure, &c
Scalability
⚙
👩🚒
🌐
Rajsbaum & Raynal, 60 Years of Mastering Concurrent Computing Through Sequential Thinking
Slide 88
New Space to Play 🪁
Evolution of Concerns Physical Resource Management
Immaterial Objects
💿
📊
Distributed State Machines
Adversaries, Asynchrony, Failure, &c
Scalability
⚙
👩🚒
🌐
Rajsbaum & Raynal, 60 Years of Mastering Concurrent Computing Through Sequential Thinking
Slide 89
New Space to Play 🪁
Evolution of Concerns Physical Resource Management
Immaterial Objects
💿
📊
Distributed State Machines
Adversaries, Asynchrony, Failure, &c
Scalability
⚙
👩🚒
🌐
Rajsbaum & Raynal, 60 Years of Mastering Concurrent Computing Through Sequential Thinking
Slide 90
New Space to Play 🪁
Important Progress, But Early Days
‘60
‘70
‘80
‘90
‘00
‘10
‘20
Slide 91
New Space to Play 🪁
Important Progress, But Early Days Semaphores
Mutex
‘60
Distributed State Machines
Concurrent Reads &
‘70
PAXOS
FLP Impossibility
‘80 Byzantine Generals Problem
Shared Memory In Message Passing With Crashes CALM
Wait-Free Sync PBFT
‘90
‘00 Transactional Memory
CRDT
CAP
zk-SNARK
‘10 Nakamoto Consensus
‘20 Twizzler
Slide 92
Paradigm Shift
Locality 🤳
Slide 93
Locality 🤳
Slide 94
Locality 🤳
[…] existing infrastructure will not be able to handle the volumes or the rates We are absolutely going to return to a peer-to-peer computing […] not unlike distributed computing – Andreessen Horowitz, The End of Cloud Computing
Slide 95
Locality 🤳
Users vs Cloud Infra
Source: AWS
Slide 96
Locality 🤳
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 97
Locality 🤳
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 98
Locality 🤳
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 99
Locality 🤳
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 100
Locality 🤳
Users vs Cloud Infra 6
7
2
6
50M
1 1
1
1 Source: AWS
Slide 101
Locality 🤳
Users vs Cloud Infra
371 million 56M/centre
6
7
2
6
50M
1 1
1
1 Source: AWS
Slide 102
Locality 🤳
Users vs Cloud Infra
371 million 56M/centre
6
7
2
6
50M
1 1 ~435 million 435M/centre
1
1 Source: AWS
Slide 103
Locality 🤳
Users vs Cloud Infra
371 million 56M/centre
6
7
2
6
50M
1 1 ~435 million 435M/centre
1
~1.4 billion 1400M/centre
1 Source: AWS
Slide 104
Locality 🤳
Users vs Cloud Infra
371 million 56M/centre
6
7
2
6
50M
1 1 ~435 million 435M/centre
1
~1.4 billion 1400M/centre
1 Source: AWS
Slide 105
Locality 🤳
Sending a “Direct” Message
Slide 106
Locality 🤳
Sending a “Direct” Message
Slide 107
Locality 🤳
Sending a “Direct” Message
Slide 108
Locality 🤳
Sending a “Direct” Message
7.2x ⏳🔋🛢🪠
Slide 109
Locality 🤳
Latency is a Physical Limit 🚧
• Bandwidth max not even close • Speed of light causality • Edge dominates < 40ms • Best at ~8ms • 1ms applications exist • “Ultra Reliable Low Latency”
Ericsson, http://cscn2017.ieee-cscn.org/files/2017/08/Janne_Peisa_Ericsson_CSCN2017.pdf
Slide 110
Locality 🤳
Latency is a Physical Limit 🚧
• Bandwidth max not even close • Speed of light causality • Edge dominates < 40ms • Best at ~8ms • 1ms applications exist • “Ultra Reliable Low Latency”
Ericsson, http://cscn2017.ieee-cscn.org/files/2017/08/Janne_Peisa_Ericsson_CSCN2017.pdf
Slide 111
Locality 🤳
Latency is a Physical Limit 🚧
• Bandwidth max not even close • Speed of light causality • Edge dominates < 40ms • Best at ~8ms • 1ms applications exist • “Ultra Reliable Low Latency”
Ericsson, http://cscn2017.ieee-cscn.org/files/2017/08/Janne_Peisa_Ericsson_CSCN2017.pdf
Slide 112
Locality 🤳
Slide 113
Locality 🤳
By 2025, 75% of data will be processed outside the traditional data centre or cloud – Gartner, What Edge Computing Means for Infrastructure and Operations Leaders
Slide 114
Locality 🤳 edge,
on de
vice,
etc
By 2025, 75% of data will be processed outside the traditional data centre or cloud – Gartner, What Edge Computing Means for Infrastructure and Operations Leaders
Slide 115
Locality 🤳 edge,
on de
vice,
etc
By 2025, 75% of data will be processed outside the traditional data centre or cloud – Gartner, What Edge Computing Means for Infrastructure and Operations Leaders
Slide 116
Locality 🤳
New Environment
Slide 117
Locality 🤳
New Environment Then 📠
Now 🚀
Slide 118
Locality 🤳
New Environment Need
Then 📠
Now 🚀
Convenient 💁
Critical 🚨
Slide 119
Locality 🤳
New Environment Then 📠
Now 🚀
Need
Convenient 💁
Critical 🚨
Location
Data Centre 🏢
Powerful Clients (M1, IoT) ⌚🚙👟
Slide 120
Locality 🤳
New Environment Then 📠
Now 🚀
Need
Convenient 💁
Critical 🚨
Location
Data Centre 🏢
Powerful Clients (M1, IoT) ⌚🚙👟
🖥
📱
Access
Slide 121
Locality 🤳
New Environment Then 📠
Now 🚀
Need
Convenient 💁
Critical 🚨
Location
Data Centre 🏢
Powerful Clients (M1, IoT) ⌚🚙👟
🖥
📱
Bandwidth 🚚
Latency ⏲
Access Bottleneck
Slide 122
Locality 🤳
New Environment Then 📠
Now 🚀
Need
Convenient 💁
Critical 🚨
Location
Data Centre 🏢
Powerful Clients (M1, IoT) ⌚🚙👟
🖥
📱
Bandwidth 🚚
Latency ⏲
🇺🇸🇪🇺
🌎🌍🌏 … 🌔
Access Bottleneck Market
Locality 🤳
A New Topology
🛰
Local 🤳 First 🐇
🗼
💾⚙
🛰
🛰
🏢
☁ 💾⚙
💾⚙
⚙ 💾 ⚙ 💾 ⚙ 💾 💾⚙ ⚙ 🐘
Slide 130
Locality 🤳
A New Topology
🛰
Local 🤳 First 🐇
🗼
Realtime, Storage, Caching, OLTP 💾⚙
🛰
🛰
🏢
☁ 💾⚙
💾⚙
⚙ 💾 ⚙ 💾 ⚙ 💾 💾⚙ ⚙ 🐘
Slide 131
Locality 🤳
A New Topology
🛰
Local 🤳 First 🐇
🗼
Realtime, Storage, Caching, OLTP 💾⚙
🛰 Relay, Replication, Consistency, Tasks 💾⚙
🏢
🛰
☁ 💾⚙ ⚙ 💾 ⚙ 💾 ⚙ 💾 💾⚙ ⚙ 🐘
Slide 132
Locality 🤳
A New Topology
🛰
Local 🤳 First 🐇
🗼
Realtime, Storage, Caching, OLTP 💾⚙
🛰 Relay, Replication, Consistency, Tasks 💾⚙
🏢
🛰
☁
Aggregation, Batching, Training, ⚙ 💾 ⚙ 💾 ⚙ 💾 OLAP ⚙ 💾
💾⚙ ⚙ 🐘
Slide 133
Locality 🤳
Evolving Toolbox Serverless Networked Data Cloud Commons Networks Local-First Blockchain
O
ffl
P2P
ine
Slide 134
Locality 🤳
Evolving Toolbox Serverless Networked Data
Radical shifts how we think about auth, locality of reference, ownership, and reliability
Cloud Commons Networks Local-First Blockchain
O
ffl
P2P
ine
Slide 135
Let Them Eat CAP
Consistency is a Lie 🍰
Slide 136
Let Them Eat CAP
Consistency is a Lie 🍰
Slide 137
Consistency is a Lie 🍰
Slide 138
Consistency is a Lie 🍰
The limitation of local knowledge is the fundamental fact about the setting in which we work, and it is a very powerful limitation – Nancy Lynch, A Hundred Impossibility Proofs for Distributed Computing
Slide 139
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 140
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
• If network partition, pick from: • Availability (A) ✅ Uptime! • Consistency (C)
Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 141
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
• If network partition, pick from:
C
• Availability (A) ✅ Uptime! • Consistency (C) A
Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 142
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
• If network partition, pick from:
C
• Availability (A) ✅ Uptime!
P
• Consistency (C) A
Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 143
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
• If network partition, pick from:
C
• Availability (A) ✅ Uptime!
P
• Consistency (C) • Else (E) running normally, pick from:
A
• Latency (L) ✅ Speed! • Consistency (C) Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 144
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
• If network partition, pick from:
C
• Availability (A) ✅ Uptime!
P
E
• Consistency (C) • Else (E) running normally, pick from:
A
L
• Latency (L) ✅ Speed! • Consistency (C) Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 145
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
• If network partition, pick from:
C
• Availability (A) ✅ Uptime!
P
E
• Consistency (C) • Else (E) running normally, pick from:
A
L
• Latency (L) ✅ Speed! • Consistency (C) Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 146
Consistency is a Lie 🍰
CAP → PACELC 📦🦌
• If network partition, pick from:
C
• Availability (A) ✅ Uptime!
P
E
• Consistency (C) • Else (E) running normally, pick from: • Latency (L) ✅ Speed!
A
L PA/EL
• Consistency (C) Daniel J. Abadi, Consistency Tradeoffs in Modern Distributed Database System Design
Slide 147
Consistency is a Lie 🍰
Causal Islands 🏖🏝
Meiklejohn, A Certain Tendency Of The Database Community
Slide 148
Consistency is a Lie 🍰
Causal Islands 🏖🏝
Meiklejohn, A Certain Tendency Of The Database Community
Slide 149
Consistency is a Lie 🍰
Causal Islands 🏖🏝
Meiklejohn, A Certain Tendency Of The Database Community
Slide 150
Consistency is a Lie 🍰
Causal Islands 🏖🏝
Meiklejohn, A Certain Tendency Of The Database Community
Slide 151
Consistency is a Lie 🍰
Causal Islands 🏖🏝
Meiklejohn, A Certain Tendency Of The Database Community
Slide 152
Consistency is a Lie 🍰
Causal Islands 🏖🏝
Meiklejohn, A Certain Tendency Of The Database Community
Slide 153
Consistency is a Lie 🍰
Causal Islands 🏖🏝
Meiklejohn, A Certain Tendency Of The Database Community
Slide 154
Consistency is a Lie 🍰
Causal Islands 🏖🏝
“Causal Subjectivity”
Meiklejohn, A Certain Tendency Of The Database Community
Slide 155
Consistency is a Lie 🍰
Slide 156
Consistency is a Lie 🍰
As we continue to increase the number of globally connected devices, we must embrace a design that considers every single member in the system as the primary site for the data that it is generates. It is completely impractical that we can look at a single, or a small number, of globally distributed data centers as the primary site for all global information that we desire to perform computations with. – Christopher Meiklejohn, A Certain Tendency Of The Database Community
Slide 157
Place & Time
PLOP
🗺
Slide 158
Place & Time
PLOP
🗺
Slide 159
PLOP 🗺
Slide 160
PLOP 🗺
As data becomes increasingly distributed, traditional RPC and data serialization limits performance, result in rigidity, and hamper expressivity – Bittman et al, Don’t Let RPCs Constrain Your API
PLOP 🗺
Semantics Non-Preservation
👨🎨
🧑🎤 👩🌾
Changes the meaning
👽
🛸 🧙
https://www.hillelwayne.com/post/spec-composition/
Slide 182
PLOP 🗺
Bad Actors
👨🎨
🧑🎤 👩🌾
Slide 183
PLOP 🗺
Bad Actors
👨🎨
🧑🎤 👩🌾
Slide 184
PLOP 🗺
Bad Actors
👨🎨
🧑🎤 👩🌾
Slide 185
PLOP 🗺
Bad Actors
👨🎨
🧑🎤 👩🌾
Slide 186
PLOP 🗺
Bad Actors
👨🎨
🧑🎤 👩🌾
Slide 187
PLOP 🗺
Bad Actors 😈
👨🎨
🧑🎤 👩🌾
Slide 188
PLOP 🗺
Bad Actors 😈
👨🎨
🧑🎤 👩🌾
Slide 189
PLOP 🗺
And Yet…
Slide 190
PLOP 🗺
And Yet… These metastable failures have caused widespread outages at large internet companies, lasting from minutes to hours. Paradoxically, the root cause of these failures is often features that improve the efficiency or reliability of the system. – Bronson et al, Metastable Failures in Distributed Systems
Slide 191
PLOP 🗺
The Great 73-Hour Roblox Outage of 2021
https://blog.roblox.com/2022/01/roblox-return-to-service-10-28-10-31-2021/ https://www.theverge.com/2021/10/30/22754107/roblox-down-outage-chipotle-server-issues-status
Slide 192
PLOP 🗺
The Great 73-Hour Roblox Outage of 2021
https://blog.roblox.com/2022/01/roblox-return-to-service-10-28-10-31-2021/ https://www.theverge.com/2021/10/30/22754107/roblox-down-outage-chipotle-server-issues-status
Slide 193
PLOP 🗺
The Great 73-Hour Roblox Outage of 2021
https://blog.roblox.com/2022/01/roblox-return-to-service-10-28-10-31-2021/ https://www.theverge.com/2021/10/30/22754107/roblox-down-outage-chipotle-server-issues-status
Slide 194
PLOP 🗺
The Great 73-Hour Roblox Outage of 2021
👀
https://blog.roblox.com/2022/01/roblox-return-to-service-10-28-10-31-2021/ https://www.theverge.com/2021/10/30/22754107/roblox-down-outage-chipotle-server-issues-status
Slide 195
PLOP 🗺
The Great 73-Hour Roblox Outage of 2021
🧨 👀
https://blog.roblox.com/2022/01/roblox-return-to-service-10-28-10-31-2021/ https://www.theverge.com/2021/10/30/22754107/roblox-down-outage-chipotle-server-issues-status
Slide 196
PLOP 🗺
Paradoxical Performance
Slide 197
PLOP 🗺
Paradoxical Performance [Streaming was] designed to lower the CPU usage and network bandwidth of the Consul cluster, [and] worked as expected […] In order to prepare for the increased traffic we typically see at the end of the year, we also increased the number of nodes supporting traffic routing by 50%. […] Under very high load [this] causes blocking during writes, making it significantly less efficient. This behavior also explained the effect of higher corecount servers: those servers were dual socket architectures with a NUMA memory model. The additional contention on shared resources thus got worse under this architecture. — Daniel Sturman & co, Roblox Return to Service 10/28-10/31 2021
Slide 198
PLOP 🗺
Metastable Mechanism
Bronson et al, Metastable Failures in Distributed Systems
Slide 199
PLOP 🗺
Metastable Mechanism
Bronson et al, Metastable Failures in Distributed Systems
Slide 200
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 201
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 202
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 203
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 204
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 205
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 206
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 207
PLOP 🗺
Metastable Mechanism
⚡
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 208
PLOP 🗺
Metastable Mechanism
⚡
🛑
⚖
Bronson et al, Metastable Failures in Distributed Systems
Slide 209
PLOP 🗺
Metastable Mechanism
⚡
🛑
• Retries / let it crash • Work amplification
⚖
• General thrash 🫡 Bronson et al, Metastable Failures in Distributed Systems
Slide 210
PLOP 🗺
Values Over Time
Slide 211
PLOP 🗺
Values Over Time
Places are “a” way to organize concurrency. They are not “the” way.
Slide 212
Nine Nines Is So 1999
Massive Reliability
🏔
Slide 213
Massive Reliability 🏔
Slide 214
Massive Reliability 🏔
You can never step into the same river twice – Heraclitus
Slide 215
Massive Reliability 🏔
process
You can never step into the same river twice – Heraclitus
Massive Reliability 🏔
Values ≠ References ≠ Processes
• Values are eternal • Only pointers mutate • Modular! Mobile! Universal! • “Pure” • Compared by equality
Slide 221
Massive Reliability 🏔
Values ≠ References ≠ Processes
• Values are eternal • Only pointers mutate • Modular! Mobile! Universal! • “Pure” • Compared by equality
• Processes occur over time
Slide 222
Massive Reliability 🏔
Values ≠ References ≠ Processes
• Values are eternal • Only pointers mutate • Modular! Mobile! Universal! • “Pure” • Compared by equality
• Processes occur over time • Can move, but always unique
Slide 223
Massive Reliability 🏔
Values ≠ References ≠ Processes
• Values are eternal • Only pointers mutate • Modular! Mobile! Universal! • “Pure” • Compared by equality
• Processes occur over time • Can move, but always unique • Actors colocate mutable
references with processes
Slide 224
Massive Reliability 🏔
Values ≠ References ≠ Processes
• Values are eternal • Only pointers mutate • Modular! Mobile! Universal! • “Pure” • Compared by equality
• Processes occur over time • Can move, but always unique • Actors colocate mutable
references with processes
• Specific interface
Slide 225
Massive Reliability 🏔
Values ≠ References ≠ Processes
• Values are eternal • Only pointers mutate • Modular! Mobile! Universal! • “Pure” • Compared by equality
• Processes occur over time • Can move, but always unique • Actors colocate mutable
references with processes
• Specific interface • Often limited reuse,
especially when distributed
Beyond Services, Beyond Open Source
Trustless Modularity
🔌
Slide 253
Trustless Modularity 🔌
Slide 254
Trustless Modularity 🔌
Jesper, I have this idea in which we’ll connect all of the worlds Erlang systems to each other, imagine if every process could talk to every other process, world-wide! – Joe Armstrong to Jesper L. Andersen
Slide 255
Trustless Modularity 🔌
Jesper, I have this idea in which we’ll connect all of the worlds Erlang systems to each other, imagine if every process could talk to every other process, world-wide! , s n o i t a c d i e l t p a p i a t o L g e L n A e r p t o n f i n eve
– Joe Armstrong to Jesper L. Andersen
Slide 256
Trustless Modularity 🔌
Slide 257
Trustless Modularity 🔌
What happens when everything is reachable by default?
Slide 258
Trustless Modularity 🔌
PLOP 🤝 ACLs
Slide 259
Trustless Modularity 🔌
PLOP 🤝 ACLs
🧑🌾
Slide 260
Trustless Modularity 🔌
PLOP 🤝 ACLs
🧑🌾
⚙
Slide 261
Trustless Modularity 🔌
PLOP 🤝 ACLs
🧑🌾
💂
✋
⚙
Slide 262
Trustless Modularity 🔌
PLOP 🤝 ACLs
🧑🌾
📑 💂
✋
⚙
Slide 263
Trustless Modularity 🔌
PLOP 🤝 ACLs
🧑🌾
📑 💂
✋
⚙
Slide 264
Trustless Modularity 🔌
PLOP 🤝 ACLs
🧑🌾
📑 💂
✋
⚙
Slide 265
Trustless Modularity 🔌
PLOP 🤝 ACLs
🧑🌾
📑 💂
✋
Not in control
⚙
Slide 266
Trustless Modularity 🔌
PLOP 🤝 ACLs
📑 In control
🧑🌾
💂
✋
Not in control
⚙
Slide 267
Trustless Modularity 🔌
PLOP 🤝 ACLs
📑 In control
🧑🌾
💂
✋
Not in control
⚙
Slide 268
Trustless Modularity 🔌
PLOP 🤝 ACLs
📑
💂
✋
In control
🧑🌾
💂
✋
Not in control
⚙
Trustless Modularity 🔌
We have a system that applies cutting edge CS research to tackle day-to-day problems in the applications we all write. Phoenix Presence - has no single point of failure - has no single source of truth -[…] - self heals ~ Chris McCord, “What Makes Phoenix Presence Special”
Trustless Modularity 🔌
LiveView Inside Out 🐣
🖥
💾💾
🖥
💾💾💾
⚙
💾 🗃
“P2P is the new client-server” – Joe Armstrong, Building Highly Available Systems in Erlang
Slide 314
Trustless Modularity 🔌
Reading the Universal Dataspace🪐🔮
Trustless Modularity 🔌
Different Viewers ~ Schema Drift 🔍
https://www.inkandswitch.com/cambria.html
Slide 321
Trustless Modularity 🔌
Properties & Time Travel
Slide 322
Let’s Build Better Together
The Soul of a New BEAM 🌈🌈
Slide 323
The Soul of a New BEAM 🌈
BEAM Me Up
✨💎🪐🚀✨
📱💻🖥⚙
Slide 324
The Soul of a New BEAM 🌈
(Neither “Web” Nor “Assembly”)
…One More Thing
Slide 325
The Soul of a New BEAM 🌈
Further Reading 📚
Slide 326
The Soul of a New BEAM 🌈
ff
Further Reading 📚 • Peter Alvaro — CALM, Twizzler • Christopher Meiklejohn— Lasp, Partisan • Martin Kleppmann — Automerge, BFT-CRDT • Lindsey Kuper — LVar, Deterministic Parallelism • Joseph Hellerstein — BOOM, Distributed Logic • Geo rey Litt — Cambria, BYOC
Slide 327
The Soul of a New BEAM 🌈
We’re Uniquely Qualified
Slide 328
The Soul of a New BEAM 🌈
We’re Uniquely Qualified 1. Embrace the subjective nature of reality 🤗👀
Slide 329
The Soul of a New BEAM 🌈
We’re Uniquely Qualified 1. Embrace the subjective nature of reality 🤗👀 2. Values are redundant & cache friendly
Slide 330
The Soul of a New BEAM 🌈
We’re Uniquely Qualified 1. Embrace the subjective nature of reality 🤗👀 2. Values are redundant & cache friendly 3. Openly interoperate from the ground up
Slide 331
The Soul of a New BEAM 🌈
We’re Uniquely Qualified 1. Embrace the subjective nature of reality 🤗👀 2. Values are redundant & cache friendly 3. Openly interoperate from the ground up 4. Massive reliability in a time of abundant disk
Slide 332
The Soul of a New BEAM 🌈
We’re Uniquely Qualified 1. Embrace the subjective nature of reality 🤗👀 2. Values are redundant & cache friendly 3. Openly interoperate from the ground up 4. Massive reliability in a time of abundant disk 5. Build a Wasm solution… stat!