ENGINEERING · 02 / 06

Building execution engines

New engines have to be built to move convergence down an existing substrate, into the semantics of its execution models. These engines operate on the graphs of their corresponding compiler — or of the substrate's native compiler where such is suitable.

Oxford's work here includes:

01Engine

UseLive engine

Takes the output of the UseLive compiler and executes it with reactive control flow semantics, offering live program execution as a runtime mode in JavaScript. It uses the Delta Protocol to interact with program state, keeping computations converged as dependent state changes. UseLive is the industry's first control-flow reactivity model — where the ordinary imperative program is the subject of reactivity — in contrast with the traditional dataflow model of Signals, Self-Adjusting Computation, etc.

Tags
Control-flow reactivityLive program executionDelta ProtocolJavaScript
Repositories
02Engine

LinkedQL Graph engine

Takes the output of the LinkedQL compiler and executes it with automatic relationship resolution, making graph traversal possible in SQL without imperative join clauses or external tooling like the ORM. LinkedQL is the first graph engine that works decoupled from any specific database implementation — over any given PostgreSQL or MySQL database server. It uses a novel incremental schema-inference strategy to make the idea tractable on mainstream databases.

Tags
Graph traversalRelationship resolutionIncremental schema inferencePostgreSQLMySQL
Repositories
03Engine

LinkedQL Live Query engine

Takes the output of the LinkedQL compiler and executes it with reactive update semantics, keeping query results converged on the input query as the database evolves — with changes to the result object effected differentially based on the Delta Protocol. LinkedQL is the first live query engine that works decoupled from any specific database implementation — over any given PostgreSQL or MySQL database server. It uses a novel query-inheritance strategy to make the idea tractable on mainstream databases.

Tags
Live queriesDifferential updatesDelta ProtocolQuery inheritancePostgreSQLMySQL
Repositories
04Engine

LinkedQL Sync engine

Operates on database views defined as realtime views, keeping them converged on their source query as their origin database evolves. Realtime views as a capability of SQL (CREATE REALTIME VIEW) are LinkedQL's SQL-native answer to sync — where the database itself is the sync engine — in contrast with the traditional idea of a dedicated sync engine that runs outside of the database as secondary infrastructure.

Tags
Realtime viewsCREATE REALTIME VIEWSyncSQL-native
Repositories
05Engine

LinkedQL Schema Versioning engine

Intercepts DDL operations and versions the affected database schemas for potential rollback. LinkedQL is the first database-level schema versioning system that works across arbitrary PostgreSQL and MySQL databases. Automatic schema versioning is its SQL-native answer to the manual script-based database migrations model and its book-keeping sprawl.

Tags
Schema versioningDDLRollbackMigrationsPostgreSQLMySQL
Repositories
06Engine

LinkedQL Version Safety engine

Takes the output of the LinkedQL compiler and enforces its version contract, ensuring that queries do not break at runtime when their schema assumptions change. Semantic version binding as a capability of SQL (tbl@2) is LinkedQL's SQL-native answer to the industry's longstanding schema drift problem — where the alternative is manual coordination of two lifecycles: of the schema and of the application code.

Tags
Semantic version bindingVersion contractSchema drifttbl@2
Repositories
07Engine

RealDOM Mutation Observer & Live Query engine

An embedded engine for the DOM that enables tighter integration with the DOM than the native MutationObserver API — with observability that works across Shadow DOM boundaries, and an asynchronous change delivery model that lifts the programming limitations of the native API. These distinctions provide what is, as far as is known, the only answer to several DOM integration requirements where timing and reach are key.

Tags
DOMMutationObserverShadow DOMLive queriesAsynchronous delivery
Repositories