Wasm Builders

Steve Lu
Steve Lu

Posted on

Building Distributed Applications on an Object-Distribution Framework over the Web

In a previous post, we described how to setup a web-based object-distribution framework where every object is served from an unique URL. Application developers build custom objects by wrapping different micro service providers, including WebAssembly Modules, into a universal container called droplet and publish them to a public repository.

In this post, we describe a simple protocol called Distributed Dynamic Remote Procedural Calls (DDRPC). DDRPC make it possible to create truly distributed applications powered by repository of objects.

A picture worth a thousand words and a video is even better. This video below instroduces how DDRPC works.

Dependency Graph

Warning, you must view the video in its entirety to understand the following discussion.

The DDRPC molecule is basically a micro-service provider that itself is transportable via droplet. A dependency graph of remote tasks can be created by adding many DDRPC molcules into a droplet. Since DDRPC uses async callback to signal completion, a promise-like setup would allow parallel, serial, or a mixed-mode execution of remote tasks to different peers.

Furthermore, droplets may contain graphical interface components, a remote task can be a survey form that remote peer must complete to continue local execution. Or an action taken by a remote peer before a local peer can follow in a gaming scenario.

Imagine a to-do list to carry out a high-level task can be shared from a repository and the list's participating parties can be changed by scripting before being initiated by anyone in the community.

Notice, DDRPC is peer-to-peer by nature, not following the traditional server-client application-distribution model. And since it is built on an object-distribution framework, it is also very dynamic.

Discussion (0)