Seamless Services for an Open World
We cannot sow seeds with clenched fists. To sow we must open our hands. β Adolfo Perez Esquivel
Slide 4
Seamless Services for an Open World
Slide 5
Seamless Services for an Open World
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, email to Jesper L. Andersen
Slide 6
Seamless Services for an Open World
Brooklyn Zelenka @expede
Slide 7
Seamless Services for an Open World
Brooklyn Zelenka @expede
github.com/expede
Slide 8
Seamless Services for an Open World
Brooklyn Zelenka @expede Cofounder & CTO at Fission Codes https://fission.codes PLT and DSys are my jam π€ Witchcraft, UCAN, WNFS, Rhizome, Multiformats, EIPs, &c
github.com/expede
Slide 9
Seamless Services for an Open World
Brooklyn Zelenka @expede Cofounder & CTO at Fission Codes https://fission.codes
github.com/expede
PLT and DSys are my jam π€ Witchcraft, UCAN, WNFS, Rhizome, Multiformats, EIPs, &c π¦ Rust IPVM implementation (mainly) by Zeeshan Lakhani Joint work with Protocol Labs, Expanso, and others
github.com/zeeshanlakhani
Slide 10
Seamless Services for an Open World
Rolling Weight
Slide 11
Seamless Services for an Open World
Rolling Weight
Other 35%
IBM 4% Alibaba 4% Google 9%
AWS 32%
Azure 17%
Slide 12
Seamless Services for an Open World
Rolling Weight
Other 35%
IBM 4% Alibaba 4% Google 9%
AWS 32%
Azure 17%
Slide 13
Seamless Services for an Open World
Rolling Weight
Other 35%
IBM 4% Alibaba 4% Google 9%
AWS 32%
Azure 17%
Slide 14
Seamless Services for an Open World
Rolling Weight
Other 35%
IBM 4% Alibaba 4% Google 9%
AWS 32%
Azure 17%
Slide 15
Seamless Services for an Open World
Rolling Weight
Other 35%
IBM 4% Alibaba 4% Google 9%
AWS 32%
Azure 17%
Slide 16
Seamless Services for an Open World
Everything, Everywhere, All At Once
Slide 17
Seamless Services for an Open World
Everything, Everywhere, All At Once Nothing less than connecting all of the worldβs users & services. The βHTTPβ storage and compute equivalent: open, interoperable, & everywhere. Must be substantially better than the status quo.
Slide 18
Seamless Services for an Open World
Dependency Stack
Slide 19
Seamless Services for an Open World
Dependency Stack
Compute β
Slide 20
Seamless Services for an Open World
Dependency Stack
Compute β Data πΎ
Slide 21
Seamless Services for an Open World
Dependency Stack
Compute β Data πΎ Auth π
Slide 22
Slide 23
β A Series of Very Reasonable Steps β
How We Got Here
Slide 24
How We Got Here
One-to-One
Slide 25
How We Got Here
One-to-One
π
π₯
Slide 26
How We Got Here
One-to-One
π
π₯ π’
Slide 27
How We Got Here
One-to-One
π
π₯ π’
π
Slide 28
How We Got Here
One-to-One
π
π₯ π’
β
π
Slide 29
How We Got Here
One-to-One
π
π₯ π’
β
πͺ
π
Slide 30
How We Got Here
One-to-One
π
π₯ π’
β
πͺ
π
Slide 31
How We Got Here
One-to-One
π π π
π₯ π’ π₯ π’ π₯ π’
β
πͺ
π
Slide 32
How We Got Here
One-to-One
π π π
π₯ π’ π₯ π’ π₯ π’
β
πͺ
π
π
Slide 33
How We Got Here
Hidden Many-to-Many
π π π
π₯ π₯ π₯
π
β β β
π π π
π π π
Slide 34
How We Got Here
Invisible Many-to-Many
π π π
π₯ π₯ π₯
π
β β β
π π π
π π π
Slide 35
How We Got Here
Invisible Many-to-Many
π π π
π₯ π₯ π₯
β π π π β π βCloudβ π β π
β
π
How We Got Here
β¦and so it was for many yearsβ¦
Slide 38
How We Got Here
β¦and so it was for many yearsβ¦ π¦βππΎπ°π’π
Slide 39
How We Got Here
Consequences π
Slide 40
How We Got Here
Consequences π
β’ Single source of truth (βtheβ database)
Slide 41
How We Got Here
Consequences π
β’ Single source of truth (βtheβ database) β’ Server-centric β’ βFull stack developmentβ β’ DevOps, Docker, k8s, IaC β’ How to train enough engineers?
Slide 42
How We Got Here
Consequences π
β’ Single source of truth (βtheβ database) β’ Server-centric β’ βFull stack developmentβ β’ DevOps, Docker, k8s, IaC β’ How to train enough engineers?
Slide 43
How We Got Here
Random Walk
Image by Pradyumna Yadav
Slide 44
How We Got Here
Random Walk
Image by Pradyumna Yadav
Slide 45
How We Got Here
Random Walk
π
Image by Pradyumna Yadav
Slide 46
How We Got Here
Random Walk
π π
Image by Pradyumna Yadav
Slide 47
How We Got Here
Random Walk π§ π π
Image by Pradyumna Yadav
Slide 48
How We Got Here
Random Walk
π
π§ π π
Image by Pradyumna Yadav
Slide 49
How We Got Here
Slide 50
How We Got Here
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
Slide 51
How We Got Here
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
Slide 52
Slide 53
β Weβre Not On Dial-Up Anymore β
A New Environment
Slide 54
A New Environment
Sending a βDirectβ Message
Slide 55
A New Environment
Sending a βDirectβ Message
Slide 56
A New Environment
Sending a βDirectβ Message
Slide 57
A New Environment
Sending a βDirectβ Message
β³ππ’πͺ
Slide 58
A New Environment
Users vs Cloud Infra
Source: AWS
Slide 59
A New Environment
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 60
A New Environment
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 61
A New Environment
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 62
A New Environment
Users vs Cloud Infra 6
7
6
2 1 1
1
1 Source: AWS
Slide 63
A New Environment
Users vs Cloud Infra 6
7
2
6
50M
1 1
1
1 Source: AWS
Slide 64
A New Environment
Users vs Cloud Infra
371 million 56M/centre
6
7
2
6
50M
1 1
1
1 Source: AWS
Slide 65
A New Environment
Users vs Cloud Infra
371 million 56M/centre
6
7
2
6
50M
1 1 ~435 million 435M/centre
1
1 Source: AWS
Slide 66
A New Environment
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 67
A New Environment
Data Gravity Aggregated Data
Slide 68
A New Environment
What 8ms Looks Like
Slide 69
A New Environment
What 8ms Looks Like St. Louis β‘ Havana Ideal Vacuum π«
Slide 70
A New Environment
What 8ms Looks Like St. Louis β‘ Havana Ideal Vacuum π«
St. Louis π NYC Ideal Vacuum π«
Slide 71
A New Environment
What 8ms Looks Like St. Louis β‘ Havana Ideal Vacuum π«
St. Louis π NYC Ideal Vacuum π«
St. Louis π Detroit Ideal Fibre π§Ά
Slide 72
A New Environment
Causal Islands ππ
Slide 73
A New Environment
Causal Islands ππ
Slide 74
A New Environment
Causal Islands ππ
Slide 75
A New Environment
Causal Islands ππ
Slide 76
A New Environment
Causal Islands ππ
Slide 77
A New Environment
Causal Islands ππ
Slide 78
A New Environment
Causal Islands ππ
Slide 79
A New Environment
Slide 80
A New Environment
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. β Meiklejohn, A Certain Tendency Of The Database Community
Slide 81
A New Environment
Everything, Everywhere
Slide 82
A New Environment
Everything, Everywhere Commons
Cloud & Edge
Far Edge
Slide 83
A New Environment
Everything, Everywhere Commons
Cloud & Edge
Far Edge
Slide 84
A New Environment
Everything, Everywhere Commons
Cloud & Edge
Far Edge
Slide 85
A New Environment
Slide 86
Slide 87
β Getting Back to Our Roots β
Networks for Good
Slide 88
Networks for Good
Back to Our Roots
Slide 89
Networks for Good
Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus β The Web Foundation, History of the Web
Slide 90
Networks for Good
Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus
en.wikipedia.org/wiki/OSI_model
β The Web Foundation, History of the Web
Slide 91
Networks for Good
Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus
en.wikipedia.org/wiki/OSI_model
β The Web Foundation, History of the Web
Slide 92
Networks for Good
Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus
en.wikipedia.org/wiki/OSI_model
β The Web Foundation, History of the Web
Slide 93
Networks for Good
User Agency
β’ Entry: Empower users to participate β’ Exit: Option to move or leave β’ Safety: Control access to your data β’ Serve: Provide capacity to others
Slide 94
Signs of a Way Out
Emerging Definitions
Slide 95
Signs of a Way Out
ACL Redux
Slide 96
Signs of a Way Out
ACL Redux
π§πΎ
Slide 97
Signs of a Way Out
ACL Redux
π§πΎ
β
Slide 98
Signs of a Way Out
ACL Redux
π§πΎ
π
β
β
Slide 99
Signs of a Way Out
ACL Redux
π§πΎ
π π
β
β
Slide 100
Signs of a Way Out
ACL Redux
π§πΎ
π π
β
β
Slide 101
Signs of a Way Out
ACL Redux
π§πΎ
π π
β
β
Slide 102
Signs of a Way Out
ACL Redux
π§πΎ
π π
β
Not in control
β
Slide 103
Signs of a Way Out
ACL Redux
π In control
π§πΎ
π
β
Not in control
β
Slide 104
Signs of a Way Out
ACL Redux
π
π
β
In control
π§πΎ
π
β
Not in control
β
Slide 105
Signs of a Way Out
Capabilities
Slide 106
Signs of a Way Out
Capabilities
π΅
Slide 107
Signs of a Way Out
Capabilities
π΅
β
Slide 108
Signs of a Way Out
Capabilities
π΅ πΊ Addr
β
Slide 109
Signs of a Way Out
Capabilities
π΅ πΊ Addr
π
β
Slide 110
Signs of a Way Out
Capabilities
π΅ πΊ Addr
In control
π
β
Slide 111
Signs of a Way Out
Capabilities
π΅ πΊ Addr
In control
π
β All req info
Slide 112
Signs of a Way Out
Capabilities
π΅ πΊ Addr
π
β
Slide 113
Signs of a Way Out
Capabilities
π΅ π πΊ π π Addr
β
Slide 114
Signs of a Way Out
Capabilities
π΅ πΊ Addr
π
β
Slide 115
Signs of a Way Out
Capabilities
π΅ πΊ Addr
π¨π¨
π
β
Slide 116
Signs of a Way Out
Capabilities
π΅ πΊ Addr
π
π
π¨π¨ β
Slide 117
Signs of a Way Out
Capabilities
π΅ πΊ Addr
π
π
π¨π¨
β
π
Compute Substrate
With a Little Help From My Friends
Slide 187
Compute Substrate
Throughput
With a Little Help From My Friends
Parallelisation
Slide 188
Compute Substrate
With a Little Help From My Friends
Throughput
Ideal (Linear)
Parallelisation
Slide 189
Compute Substrate
With a Little Help From My Friends Ideal (Linear)
Throughput
Amdahlβs Law
Parallelisation
Slide 190
Compute Substrate
With a Little Help From My Friends Ideal (Linear)
Throughput
Amdahlβs Law
Universal Scaling Law
Parallelisation
Slide 191
Compute Substrate
With a Little Help From My Friends Ideal (Linear)
Throughput
Amdahlβs Law
Incoherence, Data Contention
Parallelisation
Universal Scaling Law
Slide 192
Compute Substrate
With a Little Help From My Friends
Throughput
Global Adaptive Optimisation
π
Ideal (Linear)
Amdahlβs Law
Incoherence, Data Contention
Parallelisation
Universal Scaling Law
Slide 193
Compute Substrate
With a Little Help From My Friends
Throughput
Global Adaptive Optimisation
π
Ideal (Linear)
Amdahlβs Law
Incoherence, Data Contention
Parallelisation
Universal Scaling Law
Slide 194
Compute Substrate
Run Once, And Never Again
Slide 195
Compute Substrate
Run Once, And Never Again Input Hash β Cached Output
Slide 196
Compute Substrate
Run Once, And Never Again Input Hash β Cached Output AI moderation & tagging
Slide 197
Compute Substrate
Run Once, And Never Again Input Hash β Cached Output AI moderation & tagging Distributed JWT/DID validation
Slide 198
Compute Substrate
Run Once, And Never Again Input Hash β Cached Output AI moderation & tagging Distributed JWT/DID validation Transitive trust
Slide 199
Compute Substrate
Run Once, And Never Again Input Hash β Cached Output AI moderation & tagging Distributed JWT/DID validation Transitive trust Thumbnails, cropping
The Safety Dance
β Semantics to Climb Out of the Tar Pit β
Slide 210
The Safety Dance πΊ
Description vs Invocation
Slide 211
The Safety Dance πΊ
Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β managed effects
Slide 212
The Safety Dance πΊ
Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β managed effects
function
Slide 213
The Safety Dance πΊ
Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β managed effects input
function
Slide 214
The Safety Dance πΊ
Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β managed effects input
function
output
function
Slide 215
The Safety Dance πΊ
Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β managed effects effect
input
effect
function
output
function
Slide 216
The Safety Dance πΊ
Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β managed effects effect
input
function
output
effect
function
Slide 217
The Safety Dance πΊ
Managed Effects Mutation E ect Stream
Query E ect Stream
Pure Function Stream
ff
ff
Base Event Stream
tβ
Slide 218
The Safety Dance πΊ
Managed Effects Mutation E ect Stream
Query E ect Stream
Pure Function Stream
ff
ff
Base Event Stream
tβ
Slide 219
The Safety Dance πΊ
Managed Effects Mutation E ect Stream
Query E ect Stream
Pure Function Stream
ff
ff
Base Event Stream
tβ
Slide 220
The Safety Dance πΊ
Managed Effects Mutation E ect Stream
Query E ect Stream
Pure Function Stream
ff
ff
Base Event Stream
tβ
Slide 221
The Safety Dance πΊ
Managed Effects Mutation E ect Stream
Query E ect Stream
Pure Function Stream
ff
ff
Base Event Stream
tβ
π
Slide 222
The Safety Dance πΊ
Managed Effects
π
Mutation E ect Stream
Query E ect Stream
Pure Function Stream
ff
ff
Base Event Stream
tβ
π
Slide 223
The Safety Dance πΊ
Managed Effects
π
Mutation E ect Stream
Query E ect Stream
Pure Function Stream
ff
ff
Base Event Stream
tβ
π
π
The Safety Dance πΊ
Virtual Resiliency
Mutable π¦ Idempotent π Deterministic π
Query A
Query B
Slide 227
The Safety Dance πΊ
Virtual Resiliency
Query A
Query B
Compute A
Mutable π¦ Idempotent π Deterministic π
Slide 228
The Safety Dance πΊ
Virtual Resiliency
Query A
Query B
Compute A
Mutable π¦ Query C
Idempotent π Deterministic π
Slide 229
The Safety Dance πΊ
Virtual Resiliency
Query A
Query B
Compute A
Mutable π¦ Query C
Idempotent π Deterministic π
Compute B
Query D
Slide 230
The Safety Dance πΊ
Virtual Resiliency
Query A
Query B
Compute A
Mutable π¦ Query C
Idempotent π Deterministic π
Compute B
Query D
Mutation
Slide 231
The Safety Dance πΊ
Virtual Resiliency Mutation
Query A
Query B
Compute A
Mutable π¦ Query C
Mutation
Idempotent π Deterministic π
Compute B
Query D
Mutation
Slide 232
The Safety Dance πΊ
Slide 233
The Safety Dance πΊ
If their application can be cast as pure data processing, they benefit from the past 40-50 years of work form the database community, [and] completely isolate the developer from the possibility of failure β Goldstein et al, AMBROSIA: Providing Performant Virtual Resiliency for Distributed Applications
Slide 234
The Safety Dance πΊ
Simplified Safe Layout
Slide 235
The Safety Dance πΊ
Simplified Safe Layout
Queries Queries Queries
Slide 236
The Safety Dance πΊ
Simplified Safe Layout
Queries Queries Queries
Pure Computation Pure Computation Pure Computation
Slide 237
The Safety Dance πΊ
Simplified Safe Layout
Queries Queries Queries
Pure Computation Pure Computation Pure Computation
Slide 238
The Safety Dance πΊ
Simplified Safe Layout
Queries Queries Queries
Pure Computation Pure Computation Pure Computation
Mutation
Slide 239
The Safety Dance πΊ
Simple Example Compute A
Query
Compute B
Mutation
Slide 240
The Safety Dance πΊ
Simple Example Compute A
Query
Compute B
Mutation
Slide 241
The Safety Dance πΊ
Simple Example Compute A
Query
π¦Ίβ Compute B
Mutation