ENGINEERING · 03 / 06

Developing new protocols

New protocols are required to make convergence work universally across the computing substrate. They establish the central language of communication between the different parts of the substrate — each of which must work independently of the other, but coherently with them.

Oxford's work here includes:

01Protocol

Delta Protocol for runtimes

Defines the central language of change to program state: both the lexical program scope, and the mutable object and array. Mutations to these stores are exposed through the protocol to observers bound to the stores from other parts of the program — detailing what changed and how. The model is the language-native answer to the traditional ad-hoc pub/sub patterns that must be scaled by hand.

Tags
Program stateLexical scopeMutable objectsObserversPub/sub
Repositories
02Protocol

Live Sessions protocol for HTTP

Adds a persistent, interactive mode to the otherwise stateless HTTP request/response model. The protocol defines the client/server handshake sequence for transitioning into such a mode, and how the resulting session may end. The model is the HTTP-native answer to the traditional split-architecture model that runs a WebSocket server by the side.

Tags
HTTPLive sessionsHandshakeWebSocket
Repositories
03Protocol

Multi-Response protocol for HTTP

Adds a multi-response model to the otherwise monotonic HTTP request/response model, letting an HTTP server respond multiple times to a single request. The protocol defines the shape of a typical response frame of the model, and the events the model exposes. It works on top of a persistent client/server session like that of the HTTP Live Sessions protocol, or that of JavaScript message channels. A multi-response architecture is the HTTP-native answer to the common multi-roundtrip problem of the typical web application.

Tags
HTTPMulti-responseResponse framesEventsRoundtrips
Repositories
04Protocol

Live State Transfer protocol

Lets mutable objects cross networking boundaries by reference, where mutations made to the original instance automatically reflect on the received instance. The protocol is a specification of how the Delta Protocol crosses a communication boundary. It works on top of a persistent client/server session like that of the HTTP Live Sessions protocol, or that of JavaScript message channels. It drives a shift from manual state synchronization across boundaries to direct live state transfer across the same boundaries.

Tags
Live state transferSend by referenceDelta ProtocolMessage channelsNetwork boundaries
Repositories
05Protocol

LinkedQL Edge Protocol

Lets the database query model run from outside of the server environment — from the client, worker, or edge environment. It defines how queries and results may cross the networking boundary and how access control may be implemented on the model. It works on top of a persistent client/server session like that of the HTTP Live Sessions protocol, or that of JavaScript message channels. It changes the typical application data architecture from a choreography of many moving parts to a single contract that applies universally.

Tags
Query modelClientWorkerEdgeAccess control
Repositories