Seamless Services for an Open World

A presentation at Causal Islands in April 2023 in Toronto, ON, Canada by Brooklyn Zelenka

Slide 1

Slide 1

Seamless Services β€”For an Open Worldβ€” 🌈 Light Cones, User Agency, & Connecting Everything 🧩 github.com/ipvm-wg fission.codes

Slide 2

Slide 2

Seamless Services for an Open World

Slide 3

Slide 3

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

Slide 4

Seamless Services for an Open World

Slide 5

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

Slide 6

Seamless Services for an Open World Brooklyn Zelenka @expede github.com/expede

Slide 7

Slide 7

Seamless Services for an Open World Brooklyn Zelenka @expede Cofounder & CTO at Fission fission.codes discord.gg/fissioncodes @fission@plnetwork.xyz PLT and DSys are my jam 🀘 UCAN, WNFS, Rhizome, IPVM, Multiformats, EIPs, others github.com/expede

Slide 8

Slide 8

Seamless Services for an Open World Rolling Weight

Slide 9

Slide 9

Seamless Services for an Open World Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

Slide 10

Slide 10

Seamless Services for an Open World Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

Slide 11

Slide 11

Seamless Services for an Open World Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

Slide 12

Slide 12

Seamless Services for an Open World Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

Slide 13

Slide 13

Seamless Services for an Open World Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

Slide 14

Slide 14

Seamless Services for an Open World Everything, Everywhere, All At Once

Slide 15

Slide 15

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 16

Slide 16

Space to Play Dependency Stack

Slide 17

Slide 17

Space to Play Dependency Stack Compute βš™

Slide 18

Slide 18

Space to Play Dependency Stack Compute βš™ Data πŸ’Ύ

Slide 19

Slide 19

Space to Play Dependency Stack Compute βš™ Data πŸ’Ύ Auth 🎟

Slide 20

Slide 20

Slide 21

Slide 21

β€” A Series of Very Reasonable Steps β€” How We Got Here

Slide 22

Slide 22

How We Got Here One-to-One

Slide 23

Slide 23

How We Got Here One-to-One πŸ’ πŸ–₯

Slide 24

Slide 24

How We Got Here One-to-One πŸ’ πŸ–₯ 🐒

Slide 25

Slide 25

How We Got Here One-to-One πŸ’ πŸ–₯ 🐒 πŸ—ƒ

Slide 26

Slide 26

How We Got Here One-to-One πŸ’ πŸ–₯ 🐒 βš™ πŸ—ƒ

Slide 27

Slide 27

How We Got Here One-to-One πŸ’ πŸ–₯ 🐒 βš™ πŸ’ͺ πŸ—ƒ

Slide 28

Slide 28

How We Got Here One-to-One πŸ’ πŸ–₯ 🐒 βš™ πŸ’ͺ πŸ—ƒ

Slide 29

Slide 29

How We Got Here One-to-One πŸ’ πŸ’ πŸ’ πŸ–₯ 🐒 πŸ–₯ 🐒 πŸ–₯ 🐒 βš™ πŸ’ͺ πŸ—ƒ

Slide 30

Slide 30

How We Got Here One-to-One πŸ’ πŸ’ πŸ’ πŸ–₯ 🐒 πŸ–₯ 🐒 πŸ–₯ 🐒 βš™ πŸ’ͺ πŸ” πŸ—ƒ

Slide 31

Slide 31

How We Got Here Hidden Many-to-Many πŸ’ πŸ’ πŸ’ πŸ–₯ πŸ–₯ πŸ–₯ πŸ™ βš™ βš™ βš™ πŸ” πŸ” πŸ” πŸ—ƒ πŸ—ƒ πŸ—ƒ

Slide 32

Slide 32

How We Got Here Invisible Many-to-Many πŸ’ πŸ’ πŸ’ πŸ–₯ πŸ–₯ πŸ–₯ πŸ™ βš™ βš™ βš™ πŸ” πŸ” πŸ” πŸ—ƒ πŸ—ƒ πŸ—ƒ

Slide 33

Slide 33

How We Got Here Invisible Many-to-Many πŸ’ πŸ’ πŸ’ πŸ–₯ πŸ–₯ πŸ–₯ βš™ πŸ—ƒ πŸ” πŸ™ βš™ πŸ—ƒ β€œCloud” πŸ” βš™ πŸ—ƒ ☁ πŸ”

Slide 34

Slide 34

How We Got Here Abstract Many-to-Many πŸ’ πŸ’ πŸ’ πŸ–₯ πŸ–₯ πŸ–₯ βš™ πŸ—ƒ πŸ” πŸ™ βš™ πŸ—ƒ β€œServerless” πŸ” πŸ—ƒ (AKA more βš™servers) 🌩 πŸ”

Slide 35

Slide 35

How We Got Here …and so it was for many years…

Slide 36

Slide 36

How We Got Here …and so it was for many years… πŸ¦–β˜„πŸŒ‹πŸŒΎπŸ°πŸ’πŸš€

Slide 37

Slide 37

How We Got Here Consequences πŸ‚

Slide 38

Slide 38

How We Got Here Consequences πŸ‚ β€’ Single source of truth (β€œthe” database)

Slide 39

Slide 39

How We Got Here Consequences πŸ‚ β€’ Single source of truth (β€œthe” database) β€’ Server-centric β€’ β€œFull stack development” β€’ DevOps, Docker, k8s β€’ How to train enough engineers?

Slide 40

Slide 40

How We Got Here Consequences πŸ‚ β€’ Single source of truth (β€œthe” database) β€’ Server-centric β€’ β€œFull stack development” β€’ DevOps, Docker, k8s β€’ How to train enough engineers?

Slide 41

Slide 41

How We Got Here Random Walk Image by Pradyumna Yadav

Slide 42

Slide 42

How We Got Here Random Walk Image by Pradyumna Yadav

Slide 43

Slide 43

How We Got Here Random Walk πŸ˜„ Image by Pradyumna Yadav

Slide 44

Slide 44

How We Got Here Random Walk πŸ˜„ 😭 Image by Pradyumna Yadav

Slide 45

Slide 45

How We Got Here Random Walk 🧐 πŸ˜„ 😭 Image by Pradyumna Yadav

Slide 46

Slide 46

How We Got Here Random Walk 😍 🧐 πŸ˜„ 😭 Image by Pradyumna Yadav

Slide 47

Slide 47

How We Got Here

Slide 48

Slide 48

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 49

Slide 49

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 50

Slide 50

Slide 51

Slide 51

β€” We’re Not On Dial-Up Anymore β€” A New Environment

Slide 52

Slide 52

A New Environment Sending a β€œDirect” Message

Slide 53

Slide 53

A New Environment Sending a β€œDirect” Message

Slide 54

Slide 54

A New Environment Sending a β€œDirect” Message

Slide 55

Slide 55

A New Environment Sending a β€œDirect” Message β³πŸ”‹πŸ›’πŸͺ 

Slide 56

Slide 56

A New Environment Data Gravity Aggregated Data

Slide 57

Slide 57

A New Environment Users vs Cloud Infra Source: AWS

Slide 58

Slide 58

A New Environment Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

Slide 59

Slide 59

A New Environment Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

Slide 60

Slide 60

A New Environment Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

Slide 61

Slide 61

A New Environment Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

Slide 62

Slide 62

A New Environment Users vs Cloud Infra 6 7 2 6 50M 1 1 1 1 Source: AWS

Slide 63

Slide 63

A New Environment Users vs Cloud Infra 371 million 56M/centre 6 7 2 6 50M 1 1 1 1 Source: AWS

Slide 64

Slide 64

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 65

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.4 billion 1400M/centre 1 Source: AWS

Slide 66

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

Slide 67

A New Environment What 8ms Looks Like

Slide 68

Slide 68

A New Environment What 8ms Looks Like Toronto ➑ (almost) Havana Ideal Vacuum πŸ’«

Slide 69

Slide 69

A New Environment What 8ms Looks Like Toronto ➑ (almost) Havana Ideal Vacuum πŸ’« Toronto πŸ” Halifax Ideal Vacuum πŸ’«

Slide 70

Slide 70

A New Environment What 8ms Looks Like Toronto ➑ (almost) Havana Ideal Vacuum πŸ’« Toronto πŸ” Halifax Ideal Vacuum πŸ’« Toronto πŸ” Montreal Ideal Fibre 🧢

Slide 71

Slide 71

A New Environment Causal Islands πŸ–πŸ

Slide 72

Slide 72

A New Environment Causal Islands πŸ–πŸ

Slide 73

Slide 73

A New Environment Causal Islands πŸ–πŸ

Slide 74

Slide 74

A New Environment Causal Islands πŸ–πŸ

Slide 75

Slide 75

A New Environment Causal Islands πŸ–πŸ

Slide 76

Slide 76

A New Environment Causal Islands πŸ–πŸ

Slide 77

Slide 77

A New Environment Causal Islands πŸ–πŸ

Slide 78

Slide 78

A New Environment Causal Islands πŸ–πŸ β€œCausal Subjectivity”

Slide 79

Slide 79

A New Environment

Slide 80

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

Slide 81

A New Environment Everything, Everywhere

Slide 82

Slide 82

A New Environment Everything, Everywhere Commons Cloud & Edge Far Edge

Slide 83

Slide 83

A New Environment Everything, Everywhere Commons Cloud & Edge Far Edge

Slide 84

Slide 84

A New Environment Everything, Everywhere Commons Cloud & Edge Far Edge

Slide 85

Slide 85

A New Environment

Slide 86

Slide 86

Slide 87

Slide 87

β€” Getting Back to Our Roots β€” Networks for Good

Slide 88

Slide 88

Networks for Good Flat Circle

Slide 89

Slide 89

Networks for Good Flat Circle THIS HAS ALL HAPPENED BEFORE

Slide 90

Slide 90

Networks for Good Flat Circle THIS HAS ALL HAPPENED BEFORE …and will happen again

Slide 91

Slide 91

Networks for Good Back to Our Roots

Slide 92

Slide 92

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 93

Slide 93

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 94

Slide 94

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 95

Slide 95

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 96

Slide 96

Networks for Good The Great Spiral πŸ”©

Slide 97

Slide 97

Networks for Good The Great Spiral πŸ”©

Slide 98

Slide 98

Networks for Good The Great Spiral πŸ”© πŸ‘€πŸ¦Ί πŸ«₯πŸ‘» ff Invention Custom O -the-Shelf Utility

Slide 99

Slide 99

Networks for Good The Great Spiral πŸ”© πŸ‘€πŸ¦Ί πŸ«₯πŸ‘» ff Invention Custom O -the-Shelf Utility

Slide 100

Slide 100

Networks for Good The Great Spiral πŸ”© πŸ’Ά πŸ‘€πŸ¦Ί πŸ«₯πŸ‘» ff Invention Custom O -the-Shelf Utility

Slide 101

Slide 101

Networks for Good The Great Spiral πŸ”© πŸ’Ά πŸ‘€πŸ¦Ί πŸ«₯πŸ‘» ff Invention Custom O -the-Shelf Utility

Slide 102

Slide 102

Networks for Good The Great Spiral πŸ”© πŸ’Ά πŸ‘€πŸ¦Ί πŸ«₯πŸ‘» ff Invention Custom O -the-Shelf Utility

Slide 103

Slide 103

Networks for Good Evolution of Concerns Rajsbaum & Raynal, 60 Years of Mastering Concurrent Computing Through Sequential Thinking

Slide 104

Slide 104

Networks for Good 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 105

Slide 105

Networks for Good 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 106

Slide 106

Networks for Good 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 107

Slide 107

Networks for Good User Agency β€’ Empower users to participate (entry) β€’ Option to leave (exit) β€’ Control access to your data (safety) β€’ Provide capacity to others (serve)

Slide 108

Slide 108

Slide 109

Slide 109

β€” The Times They Are A-Changin’ β€” Signs of a Way Out

Slide 110

Slide 110

Signs of a Way Out Emerging Definitions

Slide 111

Slide 111

Signs of a Way Out ACL Redux

Slide 112

Slide 112

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ

Slide 113

Slide 113

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ βš™

Slide 114

Slide 114

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ’‚ βœ‹ βš™

Slide 115

Slide 115

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ βš™

Slide 116

Slide 116

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ βš™

Slide 117

Slide 117

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ βš™

Slide 118

Slide 118

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ Not in control βš™

Slide 119

Slide 119

Signs of a Way Out ACL Redux πŸ“‘ In control πŸ§‘πŸŒΎ πŸ’‚ βœ‹ Not in control βš™

Slide 120

Slide 120

Signs of a Way Out ACL Redux πŸ“‘ πŸ’‚ βœ‹ In control πŸ§‘πŸŒΎ πŸ’‚ βœ‹ Not in control βš™

Slide 121

Slide 121

Signs of a Way Out Capabilities

Slide 122

Slide 122

Signs of a Way Out Capabilities πŸ•΅

Slide 123

Slide 123

Signs of a Way Out Capabilities πŸ•΅ βš™

Slide 124

Slide 124

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr βš™

Slide 125

Slide 125

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 βš™

Slide 126

Slide 126

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr In control 🎟 βš™

Slide 127

Slide 127

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr In control 🎟 βš™ All req info

Slide 128

Slide 128

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 βš™

Slide 129

Slide 129

Signs of a Way Out Capabilities πŸ•΅ 🎟 πŸ—Ί 🎟 🎟 Addr βš™

Slide 130

Slide 130

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 βš™

Slide 131

Slide 131

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr πŸ‘¨πŸŽ¨ 🎟 βš™

Slide 132

Slide 132

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 🎟 πŸ‘¨πŸŽ¨ βš™

Slide 133

Slide 133

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 🎟 πŸ‘¨πŸŽ¨ βš™ 🎟

Slide 134

Slide 134

Signs of a Way Out OAuth Sequence

Slide 135

Slide 135

Signs of a Way Out OAuth Sequence

Slide 136

Slide 136

Signs of a Way Out OAuth Sequence

Slide 137

Slide 137

Signs of a Way Out OAuth Sequence

Slide 138

Slide 138

Signs of a Way Out UCAN Sequence πŸ•™

Slide 139

Slide 139

Signs of a Way Out UCAN Sequence πŸ•™

Slide 140

Slide 140

Signs of a Way Out UCAN Sequence πŸ•™

Slide 141

Slide 141

Signs of a Way Out UCAN Sequence πŸ•™

Slide 142

Slide 142

Signs of a Way Out Addressing Stack

Slide 143

Slide 143

Signs of a Way Out Addressing Stack Physical Location πŸ—Ί send(42.123.45.6, path) = content1 send(42.123.45.6, path) = content2

Slide 144

Slide 144

Signs of a Way Out Addressing Stack Naming πŸ“¬ Physical Location πŸ—Ί {DNS: IP} send(42.123.45.6, path) = content1 send(42.123.45.6, path) = content2

Slide 145

Slide 145

Signs of a Way Out Addressing Stack Content ID β˜ƒ Naming πŸ“¬ Physical Location πŸ—Ί {hash(content): content} {DNS: IP} send(42.123.45.6, path) = content1 send(42.123.45.6, path) = content2

Slide 146

Slide 146

Signs of a Way Out Universal Relationships

Slide 147

Slide 147

Signs of a Way Out Universal Relationships { } bafy123456…: { data: nil, links: [ {name: β€œcompany”, hash: bafyabc…} {name: β€œindustry”, hash: bafyzyx…} ] }

Slide 148

Slide 148

Signs of a Way Out Universal Relationships { } { bafy123456…: { data: nil, links: [ {name: β€œcompany”, hash: bafyabc…} {name: β€œindustry”, hash: bafyzyx…} ] } } bafyabcdef…: { data: β€œFission”, links: [ {name: β€œcity”, hash: bafy1gb…}, {name: β€œabout”, hash: bafyeN…} ] }

Slide 149

Slide 149

Signs of a Way Out Universal Relationships { } { bafy123456…: { data: nil, links: [ {name: β€œcompany”, hash: bafyabc…} {name: β€œindustry”, hash: bafyzyx…} ] } } bafyabcdef…: { data: β€œFission”, links: [ {name: β€œcity”, hash: bafy1gb…}, {name: β€œabout”, hash: bafyeN…} ] } bafy123456…/company/about/ceo => β€œBoris Mann”

Slide 150

Slide 150

Signs of a Way Out

Slide 151

Slide 151

Signs of a Way Out The HTTP of Compute 🀩

Slide 152

Slide 152

Signs of a Way Out The HTTP of Compute 🀩 Compute β€” like data β€” should be a ubiquitous commodity Depend on having compute around; rarely go out to the network Fully consistent functionality between clients Replace”hypercloud” dependencies with open protocol & nodes

Slide 153

Slide 153

Signs of a Way Out Don’t Make Me Think

Slide 154

Slide 154

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“±

Slide 155

Slide 155

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“±

Slide 156

Slide 156

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“± βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™

Slide 157

Slide 157

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“± βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™

Slide 158

Slide 158

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“± βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™

Slide 159

Slide 159

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“± βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™

Slide 160

Slide 160

Signs of a Way Out Automatically Composed Apps

Slide 161

Slide 161

Signs of a Way Out Automatically Composed Apps πŸ‘©πŸ’» 🌈 🐢 🍬 🍾 🧸

Slide 162

Slide 162

Signs of a Way Out Automatically Composed Apps πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸

Slide 163

Slide 163

Signs of a Way Out Automatically Composed Apps πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸 πŸ‘©πŸš€ 🐢

Slide 164

Slide 164

Signs of a Way Out Automatically Composed Apps πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸 🌈 🍾 🧸 πŸ‘¨πŸŽ¨ πŸ‘©πŸš€ 🐢

Slide 165

Slide 165

Signs of a Way Out Automatically Composed Apps πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸 🌈 πŸ‘©πŸš€ 🐢 🌈 🐢 🍾 🧸 πŸ‘¨πŸŽ¨ β˜βš™

Slide 166

Slide 166

Signs of a Way Out Disorderly Programming πŸ€– βš™ πŸ‘¨πŸ’» βš™ πŸ‘¨πŸ’» πŸ‘©πŸ’» πŸ€–

Slide 167

Slide 167

Signs of a Way Out Disorderly Programming πŸ€– βš™ πŸ‘¨πŸ’» βš™ πŸ‘¨πŸ’» πŸ‘©πŸ’» πŸ€–

Slide 168

Slide 168

Slide 169

Slide 169

Compute Substrate β€” Schedule. Execute. Verify. Reuse β€”

Slide 170

Slide 170

Compute Substrate Wasm Eats the World

Slide 171

Slide 171

Compute Substrate Wasm Eats the World

Slide 172

Slide 172

Compute Substrate With Their Powers Combined!

Slide 173

Slide 173

Compute Substrate With Their Powers Combined! Compute βš™ Data πŸ’Ύ Auth 🎟

Slide 174

Slide 174

Compute Substrate With Their Powers Combined! ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Slide 175

Slide 175

Compute Substrate With Their Powers Combined! ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Slide 176

Slide 176

Compute Substrate With Their Powers Combined! ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Slide 177

Slide 177

Compute Substrate With Their Powers Combined! { IPVM ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Slide 178

Slide 178

Compute Substrate Code-as-Data

Slide 179

Slide 179

Compute Substrate Code-as-Data Arguments

Slide 180

Slide 180

Compute Substrate Code-as-Data Arguments

Slide 181

Slide 181

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Slide 182

Slide 182

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Slide 183

Slide 183

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Slide 184

Slide 184

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Slide 185

Slide 185

Compute Substrate Code-as-Data Receipt Task f Arguments Scheduling Con ig, etc

Slide 186

Slide 186

Compute Substrate Code-as-Data Receipt Task f ff Arguments Pure Values & E ects Scheduling Con ig, etc Metadata (e.g. trace)

Slide 187

Slide 187

Compute Substrate β€œNine Nines” Is So 1999

Slide 188

Slide 188

Compute Substrate β€œNine Nines” Is So 1999 βš™ 99.99999%

Slide 189

Slide 189

Compute Substrate β€œNine Nines” Is So 1999 βš™ 99.99999% πŸ€– 99.0% βš™ 99.99% βš™ 99.999%

Slide 190

Slide 190

Compute Substrate β€œNine Nines” Is So 1999 βš™ 99.99999% πŸ€– 99.0% βš™ 99.99% βš™ 99.999%

Slide 191

Slide 191

Compute Substrate β€œNine Nines” Is So 1999 βš™ 99.99999% πŸ‘©πŸŽ€ πŸ€– 99.0% βš™ 99.99% βš™ 99.999%

Slide 192

Slide 192

Compute Substrate β€œNine Nines” Is So 1999 βš™ 99.99999% πŸ‘©πŸŽ€ πŸ€– 99.0% βš™ 99.99% βš™ 99.999% πŸ‘©πŸŽ€ πŸ§‘πŸŽ€

Slide 193

Slide 193

Compute Substrate β€œNine Nines” Is So 1999 βš™ 99.99999% πŸ‘©πŸŽ€ πŸ€– 99.0% βš™ 99.99% βš™ 99.999% πŸ‘©πŸŽ€ πŸ§‘πŸŽ€

Slide 194

Slide 194

Compute Substrate β€œNine Nines” Is So 1999 βš™ 99.99999% πŸ‘©πŸŽ€ πŸ€– 99.0% βš™ 99.99% βš™ 99.999% 11-nines πŸ‘©πŸŽ€ πŸ§‘πŸŽ€

Slide 195

Slide 195

Compute Substrate β€œNine Nines” Is So 1999 βš™ β€¦βˆž-nines 99.99999% πŸ‘©πŸŽ€ πŸ€– 99.0% βš™ 99.99% βš™ 99.999% 11-nines πŸ‘©πŸŽ€ πŸ§‘πŸŽ€

Slide 196

Slide 196

Compute Substrate Matchmaking

Slide 197

Slide 197

Compute Substrate Matchmaking πŸ•΅ βš™

Slide 198

Slide 198

Compute Substrate Matchmaking πŸ•΅ βš™ πŸ™‹ βš™πŸ”¨πŸ“‘

Slide 199

Slide 199

Compute Substrate Matchmaking πŸ•΅ βš™ πŸ”Œ πŸ™‹ βš™πŸ”¨πŸ“‘

Slide 200

Slide 200

Compute Substrate Distributed Invocation

Slide 201

Slide 201

Compute Substrate Distributed Invocation dns:example.com/TYPE=TXT crud/update

Slide 202

Slide 202

Compute Substrate Distributed Invocation dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: bob@example.com}

Slide 203

Slide 203

Compute Substrate Distributed Invocation dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: bob@example.com} await mailto:alice@example.com msg/send {to: carol@example.com}

Slide 204

Slide 204

Compute Substrate Distributed Invocation dns:example.com/TYPE=TXT crud/update await await mailto:alice@example.com msg/send {to: bob@example.com} await mailto:alice@example.com msg/send {to: carol@example.com} await https://example.com/report crud/update

Slide 205

Slide 205

Compute Substrate Distributed Invocation dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: carol@example.com} await mailto:alice@example.com msg/send {to: bob@example.com} await await https://example.com/report crud/update

Slide 206

Slide 206

Compute Substrate Distributed Invocation πŸ‘©πŸš€ πŸ‘¨πŸ³ dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: carol@example.com} await mailto:alice@example.com msg/send {to: bob@example.com} await await https://example.com/report crud/update

Slide 207

Slide 207

Compute Substrate Cache, Suspend, Move, Verify

Slide 208

Slide 208

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾

Slide 209

Slide 209

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾

Slide 210

Slide 210

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾

Slide 211

Slide 211

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾 🚰 🧾

Slide 212

Slide 212

Compute Substrate Run Once, And Never Again

Slide 213

Slide 213

Compute Substrate Run Once, And Never Again Input Hash β†’ Cached Output

Slide 214

Slide 214

Compute Substrate Run Once, And Never Again Input Hash β†’ Cached Output AI moderation & tagging

Slide 215

Slide 215

Compute Substrate Run Once, And Never Again Input Hash β†’ Cached Output AI moderation & tagging Distributed token validation

Slide 216

Slide 216

Slide 217

Slide 217

Slide 218

Slide 218

Compute Substrate With a Little Help From My Friends

Slide 219

Slide 219

Compute Substrate Throughput With a Little Help From My Friends Parallelisation

Slide 220

Slide 220

Compute Substrate With a Little Help From My Friends Throughput Ideal (Linear) Parallelisation

Slide 221

Slide 221

Compute Substrate With a Little Help From My Friends Ideal (Linear) Throughput Amdahl’s Law Parallelisation

Slide 222

Slide 222

Compute Substrate With a Little Help From My Friends Ideal (Linear) Throughput Amdahl’s Law Universal Scaling Law Parallelisation

Slide 223

Slide 223

Compute Substrate With a Little Help From My Friends Ideal (Linear) Throughput Amdahl’s Law Incoherence, Data Contention Parallelisation Universal Scaling Law

Slide 224

Slide 224

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 225

Slide 225

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 226

Slide 226

Compute Substrate Determinism = Verifiable Computation

Slide 227

Slide 227

Compute Substrate Determinism = Verifiable Computation

Slide 228

Slide 228

Compute Substrate Determinism = Verifiable Computation 🚰 🧾 🚰 🧾 🧾

Slide 229

Slide 229

Compute Substrate Determinism = Verifiable Computation 🚰 🧾 🚰 🚰 🧾 🚰 🧾

Slide 230

Slide 230

Compute Substrate Determinism = Verifiable Computation 🚰 🚰 βœ… 🧾 βœ… 🧾 ❌ 🧾 🚰 🚰

Slide 231

Slide 231

Compute Substrate Determinism = Verifiable Computation 🚰 🚰 βœ… 🧾 βœ… 🧾 ❌ 🧾 🚰 🚰

Slide 232

Slide 232

Slide 233

Slide 233

The Safety Dance β€” Out of the Locality Tar Pit β€”

Slide 234

Slide 234

The Safety Dance πŸ•Ί Description vs Invocation

Slide 235

Slide 235

The Safety Dance πŸ•Ί Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β†’ managed effects

Slide 236

Slide 236

The Safety Dance πŸ•Ί Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β†’ managed effects function

Slide 237

Slide 237

The Safety Dance πŸ•Ί Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β†’ managed effects input function

Slide 238

Slide 238

The Safety Dance πŸ•Ί Description vs Invocation Impure functions produce side effects Pure functions manipulate data Side effects β†’ managed effects input function output function

Slide 239

Slide 239

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 240

Slide 240

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 241

Slide 241

The Safety Dance πŸ•Ί Managed Effects Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’

Slide 242

Slide 242

The Safety Dance πŸ•Ί Managed Effects Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’

Slide 243

Slide 243

The Safety Dance πŸ•Ί Managed Effects Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’

Slide 244

Slide 244

The Safety Dance πŸ•Ί Managed Effects Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’

Slide 245

Slide 245

The Safety Dance πŸ•Ί Managed Effects Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’ πŸ”’

Slide 246

Slide 246

The Safety Dance πŸ•Ί Managed Effects πŸš€ Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’ πŸ”’

Slide 247

Slide 247

The Safety Dance πŸ•Ί Managed Effects πŸš€ Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’ πŸ”’ πŸ”“

Slide 248

Slide 248

The Safety Dance πŸ•Ί Virtual Resiliency

Slide 249

Slide 249

The Safety Dance πŸ•Ί Virtual Resiliency Mutable πŸ¦‹ Idempotent πŸ”‚ Deterministic πŸ“…

Slide 250

Slide 250

The Safety Dance πŸ•Ί Virtual Resiliency Mutable πŸ¦‹ Idempotent πŸ”‚ Deterministic πŸ“… Query A Query B

Slide 251

Slide 251

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Idempotent πŸ”‚ Deterministic πŸ“…

Slide 252

Slide 252

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Query C Idempotent πŸ”‚ Deterministic πŸ“…

Slide 253

Slide 253

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Query C Idempotent πŸ”‚ Deterministic πŸ“… Compute B Query D

Slide 254

Slide 254

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Query C Idempotent πŸ”‚ Deterministic πŸ“… Compute B Query D Mutation

Slide 255

Slide 255

The Safety Dance πŸ•Ί Virtual Resiliency Mutation Query A Query B Compute A Mutable πŸ¦‹ Query C Mutation Idempotent πŸ”‚ Deterministic πŸ“… Compute B Query D Mutation

Slide 256

Slide 256

The Safety Dance πŸ•Ί

Slide 257

Slide 257

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 258

Slide 258

The Safety Dance πŸ•Ί Simplified Safe Layout

Slide 259

Slide 259

The Safety Dance πŸ•Ί Simplified Safe Layout Queries Queries Queries

Slide 260

Slide 260

The Safety Dance πŸ•Ί Simplified Safe Layout Queries Queries Queries Pure Computation Pure Computation Pure Computation

Slide 261

Slide 261

The Safety Dance πŸ•Ί Simplified Safe Layout Queries Queries Queries Pure Computation Pure Computation Pure Computation

Slide 262

Slide 262

The Safety Dance πŸ•Ί Simplified Safe Layout Queries Queries Queries Pure Computation Pure Computation Pure Computation Mutation

Slide 263

Slide 263

The Safety Dance πŸ•Ί Simple Example Compute A Query Compute B Mutation

Slide 264

Slide 264

The Safety Dance πŸ•Ί Simple Example Compute A Query Compute B Mutation

Slide 265

Slide 265

The Safety Dance πŸ•Ί Simple Example Compute A Query πŸ¦Ίβœ” Compute B Mutation

Slide 266

Slide 266

Slide 267

Slide 267

Wrap Up

Slide 268

Slide 268

Wrap Up Open Source

Slide 269

Slide 269

Wrap Up Open Source Lots of people work on it, everybody benefits from it, and then people can build upon it (even in a revenue generating fashion) – Ted Leung, Commons Based Peer Production (2005)

Slide 270

Slide 270

Wrap Up Commons Infrastructure Lots of people work on it, everybody benefits from it, and then people can build upon it (even in a revenue generating fashion), and is β€œowned” by everyone

Slide 271

Slide 271

Wrap Up Commons Infrastructure Lots of people work on it, everybody benefits from it, and then people can build upon it (even in a revenue generating fashion), and is β€œowned” by everyone By participating (even with competitive goals) you are strengthening the network for everyone

Slide 272

Slide 272

Wrap Up Commons Infrastructure Lots of people work on it, everybody benefits from it, and then people can build upon it (even in a revenue generating fashion), and is β€œowned” by everyone By participating (even with competitive goals) you are strengthening the network for everyone

Slide 273

Slide 273

Wrap Up Commons Infrastructure Lots of people work on it, everybody benefits from it, and then people can build upon it (even in a revenue generating fashion), and is β€œowned” by everyone By participating (even with competitive goals) you are strengthening the network for everyone

Slide 274

Slide 274

Wrap Up Reusable/Remixable Specs

Slide 275

Slide 275

Wrap Up Reusable/Remixable Specs UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

Slide 276

Slide 276

Wrap Up Reusable/Remixable Specs UCAN Pipeline 🌊 Call Graph, Awaits, etc UCAN Invocation πŸͺ„ Input Addressing, Execution, Memoization, etc UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

Slide 277

Slide 277

Wrap Up Reusable/Remixable Specs IPVM Task βš™ VM Config, Verification, etc UCAN Pipeline 🌊 Call Graph, Awaits, etc UCAN Invocation πŸͺ„ Input Addressing, Execution, Memoization, etc UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

Slide 278

Slide 278

Wrap Up Reusable/Remixable Specs IPVM Workflow πŸŽ› Transactions, Error Handling, Defaults IPVM Task βš™ VM Config, Verification, etc UCAN Pipeline 🌊 Call Graph, Awaits, etc UCAN Invocation πŸͺ„ Input Addressing, Execution, Memoization, etc UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

Slide 279

Slide 279

Wrap Up Reusable/Remixable Specs IPVM Workflow πŸŽ› Transactions, Error Handling, Defaults IPVM Task βš™ VM Config, Verification, etc UCAN Pipeline 🌊 Call Graph, Awaits, etc UCAN-Chan / ユーキャンけゃん Consumable Channels UCAN Invocation πŸͺ„ Input Addressing, Execution, Memoization, etc UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

Slide 280

Slide 280

Wrap Up Join Us 🀝

Slide 281

Slide 281

Wrap Up Join Us 🀝 Community: github.com/ipvm-wg

Slide 282

Slide 282

Wrap Up Join Us 🀝 Community: github.com/ipvm-wg

Slide 283

Slide 283

Wrap Up Join Us 🀝 Community: github.com/ipvm-wg Calls: lu.ma/ipvm

Slide 284

Slide 284

github.com/ucan-wg github.com/ipvm-wg πŸŽ‰ Thank You, Toronto πŸ‡¨πŸ‡¦ πŸ“ƒ https://fission.codes πŸ“§ brooklyn@fission.codes 🐘 @expede@octodon.social πŸ¦‹ @expede.wtf