Convergent Machines Lab
The stack

The Convergent application stack, today

Explore the layers
Overview

Each layer of the stack is a Convergent Machine, and the output of one is state for the next.

Each layer takes an existing computational model (the DOM, database queries, requests and responses, message passing, URLs, the JavaScript runtime) and extends it with the semantics of Convergent Machines. Because machines compose, the layers fit together without sharing an implementation.

DOMApplicationDurableNetworkingRuntime

The DOM layerPolyfills for the web.

OOHTML: Modular, reusable, and reactive HTML as a DOM polyfill

Visit on GitHub

RealDOM: An extension to the DOM that implements the DOM query model as Convergent Machines. The DOM is the changing state; the live query result is the observable output.

Visit on GitHub

The application layerWeb application frameworks.

Webflo: A full-stack web framework for realtime, offline-first apps

Visit on GitHub

NodeLiveResponse: LiveResponse for Node.js and Express backends

Visit on GitHub

The durable layerPersistent storage engines.

LinkedQL: A superset of SQL that fully specifies the application data contract.

Visit on GitHub

FlashQL: An embeddable local database engine that implements LinkedQL.

Visit on GitHub

Keyval: A key/value storage library with one dictionary API across browser, Node, and Redis

Visit on GitHub

The networking layerProtocols and cross-boundary communication.

Fetch+: An extension to the Fetch API that implements the request/response model as Convergent Machines. A live request stays convergent as server-side state changes.

Visit on GitHub

Port+: An extension to the native message-passing suite. A live message keeps its observable state convergent as the sender-side state changes.

Visit on GitHub

The language and runtime layerExtensions to the language and runtime.

Observer: A universal observation mechanism that makes mutations to ordinary objects and arrays observable.

Visit on GitHub

UseLive: An extension to JavaScript’s runtime semantics. Code opted into this mode functions as a live computation over program state through reactive control-flow semantics.

Visit on GitHub

OtherOther libraries, outside the stack.

URL+: An extension to the URL interface that adds observability to its existing semantics.

Visit on GitHub

Built in the open.

Convergent Machines Lab is fully open source.

See the work on GitHub