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

Seamless Services for an Open World

Seamless Services for an Open World We cannot sow seeds with clenched fists. To sow we must open our hands. – Adolfo Perez Esquivel

Seamless Services for an Open World

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

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

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

Seamless Services for an Open World Rolling Weight

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

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

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

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

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

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

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.

Space to Play Dependency Stack

Space to Play Dependency Stack Compute βš™

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

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

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

How We Got Here One-to-One

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

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

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

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

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

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

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

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

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

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

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

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

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

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

How We Got Here Consequences πŸ‚

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

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

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

How We Got Here Random Walk Image by Pradyumna Yadav

How We Got Here Random Walk Image by Pradyumna Yadav

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

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

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

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

How We Got Here

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

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

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

A New Environment Sending a β€œDirect” Message

A New Environment Sending a β€œDirect” Message

A New Environment Sending a β€œDirect” Message

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

A New Environment Data Gravity Aggregated Data

A New Environment Users vs Cloud Infra Source: AWS

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

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

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

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

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

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

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

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

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

A New Environment What 8ms Looks Like

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

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

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

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

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

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

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

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

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

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

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

A New Environment

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

A New Environment Everything, Everywhere

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

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

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

A New Environment

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

Networks for Good Flat Circle

Networks for Good Flat Circle THIS HAS ALL HAPPENED BEFORE

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

Networks for Good Back to Our Roots

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

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

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

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

Networks for Good The Great Spiral πŸ”©

Networks for Good The Great Spiral πŸ”©

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

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

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

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

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

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

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

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

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

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)

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

Signs of a Way Out Emerging Definitions

Signs of a Way Out ACL Redux

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

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

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

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

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

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

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

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

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

Signs of a Way Out Capabilities

Signs of a Way Out Capabilities πŸ•΅

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

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

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

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

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

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

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

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

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

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

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

Signs of a Way Out OAuth Sequence

Signs of a Way Out OAuth Sequence

Signs of a Way Out OAuth Sequence

Signs of a Way Out OAuth Sequence

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out Addressing Stack

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

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

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

Signs of a Way Out Universal Relationships

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

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…} ] }

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”

Signs of a Way Out

Signs of a Way Out The HTTP of Compute 🀩

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

Signs of a Way Out Don’t Make Me Think

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

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

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

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

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

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

Signs of a Way Out Automatically Composed Apps

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

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

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

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

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

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

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

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

Compute Substrate Wasm Eats the World

Compute Substrate Wasm Eats the World

Compute Substrate With Their Powers Combined!

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

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

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

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

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

Compute Substrate Code-as-Data

Compute Substrate Code-as-Data Arguments

Compute Substrate Code-as-Data Arguments

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

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

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

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

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

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

Compute Substrate β€œNine Nines” Is So 1999

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

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

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

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

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

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

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

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

Compute Substrate Matchmaking

Compute Substrate Matchmaking πŸ•΅ βš™

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

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

Compute Substrate Distributed Invocation

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

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

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}

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

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

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

Compute Substrate Cache, Suspend, Move, Verify

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

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

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

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

Compute Substrate Run Once, And Never Again

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

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

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

Compute Substrate With a Little Help From My Friends

Compute Substrate Throughput With a Little Help From My Friends Parallelisation

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

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

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

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

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

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

Compute Substrate Determinism = Verifiable Computation

Compute Substrate Determinism = Verifiable Computation

Compute Substrate Determinism = Verifiable Computation 🚰 🧾 🚰 🧾 🧾

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

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

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

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

The Safety Dance πŸ•Ί Description vs Invocation

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

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

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

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

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

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

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 πŸ•Ί Managed Effects Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’

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 πŸ•Ί Managed Effects Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’

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 πŸ•Ί Managed Effects πŸš€ Mutation E ect Stream Query E ect Stream Pure Function Stream ff ff Base Event Stream tβ†’ πŸ”’

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

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

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

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

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

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

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

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

The Safety Dance πŸ•Ί

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

The Safety Dance πŸ•Ί Simplified Safe Layout

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

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

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

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

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

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

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

Wrap Up

Wrap Up Open Source

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)

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

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

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

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

Wrap Up Reusable/Remixable Specs

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

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

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

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

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

Wrap Up Join Us 🀝

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

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

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

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