A presentation at Compute Over Data Summit^3 in in Boston, MA, USA by Brooklyn Zelenka
Better Together π« IPVM For an Open World π github.com/ipvm-wg fission.codes
IPVM: Better Together
IPVM: Better Together
IPVM: Better Together 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
IPVM: Better Together Brooklyn Zelenka, @expede github.com/expede
IPVM: Better Together Brooklyn Zelenka, @expede Cofounder & CTO at Fission discord.gg/fissioncodes @fission@plnetwork.xyz IPVM Spec Wrangler β github.com/ipvm-wg github.com/expede
IPVM: Better Together Brooklyn Zelenka, @expede Cofounder & CTO at Fission discord.gg/fissioncodes @fission@plnetwork.xyz IPVM Spec Wrangler β github.com/ipvm-wg github.com/expede
IPVM: Better Together π€ Brought To You Byβ¦
IPVM: Better Together π€ Brought To You Byβ¦
IPVM: Better Together π€ Brought To You Byβ¦
IPVM: Better Together π€ Brought To You Byβ¦
IPVM: Better Together Consistency & Distribution
IPVM: Better Together Consistency & Distribution
IPVM: Better Together Consistency & Distribution
IPVM: Better Together Consistency & Distribution
IPVM: Better Together Consistency & Distribution
IPVM: Better Together Consistency & Distribution
IPVM: Better Together Consistency & Distribution IPVM
IPVM: Better Together Consistency & Distribution IPVM
IPVM: Better Together Everything, Everywhere, All At Once
IPVM: Better Together Everything, Everywhere, All At Once Nothing less than connecting all of the worldβs users & services. The βHTTP of Computeβ: open, interoperable, & everywhere. Must be substantially better than the status quo.
βWe Can Do Better Than β The Status Quo
The Status Quo Consequences π
The Status Quo Consequences π β’ Single source of truth (βtheβ database)
The Status Quo Consequences π β’ Single source of truth (βtheβ database)
The Status Quo Consequences π β’ Single source of truth (βtheβ database) β’ Server-centric β’ βFront vs back end developersβ β’ DevOps, Docker, k8s β’ How to train enough engineers?
The Status Quo Rolling Weight
The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%
The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%
The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%
The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%
The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%
The Status Quo Sending a βDirectβ Message
The Status Quo Sending a βDirectβ Message
The Status Quo Sending a βDirectβ Message
The Status Quo Sending a βDirectβ Message β³ππ’πͺ
The Status Quo Users vs Cloud Infra Source: AWS
The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS
The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS
The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS
The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS
The Status Quo Users vs Cloud Infra 6 7 2 6 50M 1 1 1 1 Source: AWS
The Status Quo Users vs Cloud Infra 371 million 56M/centre 6 7 2 6 50M 1 1 1 1 Source: AWS
The Status Quo Users vs Cloud Infra 371 million 56M/centre 6 7 2 6 50M 1 1 ~435 million 435M/centre 1 1 Source: AWS
The Status Quo 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
The Status Quo Event Horizon Aggregated Data
The Status Quo
The Status Quo 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
The Status Quo
β The Times They Are A-Changinβ β Signs of a Way Out
Signs of a Way Out Back to Our Roots
Signs of a Way Out Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus β The Web Foundation, History of the Web
Signs of a Way Out 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
Signs of a Way Out 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
Signs of a Way Out 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
Signs of a Way Out Everything, Everywhere
Signs of a Way Out Everything, Everywhere Commons Cloud & Edge Far Edge
Signs of a Way Out Everything, Everywhere Commons Cloud & Edge Far Edge
Signs of a Way Out Everything, Everywhere Commons Cloud & Edge Far Edge
Signs of a Way Out Dependency Stack
Signs of a Way Out Dependency Stack Compute β
Signs of a Way Out Dependency Stack Compute β Data πΎ
Signs of a Way Out Dependency Stack Compute β Data πΎ Auth π
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 Disorderly Programming π€ β π¨π» β π¨π» π©π» π€
Signs of a Way Out Disorderly Programming π€ β π¨π» β π¨π» π©π» π€
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 π©π» π± β β β β β β β β β β β
Compute Substrate β Schedule. Execute. Verify. Reuse β
Compute Substrate Wasm Eats the World
Compute Substrate Wasm Eats the World
Compute Substrate Wasm Eats the World Bring your own language Runs everywhere Deterministic mode
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 Input Addressing
Compute Substrate Input Addressing π¦
Compute Substrate Input Addressing hash(π¦) π¦
Compute Substrate Input Addressing hash(π¦) π¦ π§Ύ
Compute Substrate Input Addressing hash(π¦) hash({ rsc: βdns:example.comβ op: βcrud/updateβ input: {foo: βbarβ} }) π¦ π§Ύ
Compute Substrate IPLD Schema
Compute Substrate IPLD Schema Instruction (Closure)
Compute Substrate IPLD Schema Task Instruction (Closure)
Compute Substrate IPLD Schema Invocation Task Instruction (Closure)
Compute Substrate IPLD Schema Invocation Invocation Invocation Task Task Task Instruction (Closure) Instruction (Closure) Instruction (Closure)
Compute Substrate IPLD Schema f Work low Invocation Invocation Invocation Task Task Task Instruction (Closure) Instruction (Closure) Instruction (Closure)
Compute Substrate Matching Impedance
Compute Substrate Matching Impedance
Compute Substrate Matching Impedance
Compute Substrate Matching Impedance
Compute Substrate Matching Impedance e.g. 2 IPLD numerics < 10 WIT numerics
Compute Substrate Matching Impedance e.g. 2 IPLD numerics < 10 WIT numerics
Compute Substrate Matching Impedance
Compute Substrate Composition Without Imposition
Compute Substrate Composition Without Imposition π©π» π πΆ π¬ πΎ π§Έ
Compute Substrate Composition Without Imposition π©π» π¨π¦³π₯ π πΆ π¬ πΎ π§Έ π πΆ π¬ πΎ π§Έ
Compute Substrate Composition Without Imposition π©π» π¨π¦³π₯ π πΆ π¬ πΎ π§Έ π πΆ π¬ πΎ π§Έ π©π πΆ
Compute Substrate Composition Without Imposition π©π» π¨π¦³π₯ π πΆ π¬ πΎ π§Έ π πΆ π¬ πΎ π§Έ π πΎ π§Έ π¨π¨ π©π πΆ
Compute Substrate Composition Without Imposition π©π» π¨π¦³π₯ π πΆ π¬ πΎ π§Έ π πΆ π¬ πΎ π§Έ π π©π πΆ π πΆ πΎ π§Έ π¨π¨ ββ
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 Determinism = Fully Verifiable Computation
Compute Substrate Determinism = Fully Verifiable Computation
Compute Substrate Determinism = Fully Verifiable Computation π° π§Ύ π° π§Ύ π§Ύ
Compute Substrate Determinism = Fully Verifiable Computation π° π§Ύ π° π° π§Ύ π° π§Ύ
Compute Substrate Determinism = Fully Verifiable Computation π° π° β π§Ύ β π§Ύ β π§Ύ π° π°
Compute Substrate Determinism = Fully Verifiable Computation π° π° β π§Ύ β π§Ύ β π§Ύ π° π°
Compute Substrate Surprise: Reverse Lookup For Free
Compute Substrate Surprise: Reverse Lookup For Free InID β Computed Result
Compute Substrate Surprise: Reverse Lookup For Free InID β Computed Result e.g. AI moderation classifier
Compute Substrate Surprise: Reverse Lookup For Free InID β Computed Result e.g. AI moderation classifier e.g. 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
The Safety Dance β Out of the Locality Tar Pit β
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 πΊ 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 πΊ 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
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
github.com/ipvm-wg lu.ma/ipvm π Thank You, Boston πΊπΈ brooklyn@fission.codes discord.gg/fissioncodes github.com/expede
github.com/ipvm-wg lu.ma/ipvm π Thank You, Boston πΊπΈ brooklyn@fission.codes discord.gg/fissioncodes github.com/expede
github.com/ipvm-wg lu.ma/ipvm π Thank You, Boston πΊπΈ brooklyn@fission.codes discord.gg/fissioncodes github.com/expede