Substation connecting

A data plane that agents assemble and people govern.

Substation moves data as live changes between building blocks that people control: streams, tables, operators, policies. Agents propose the pipelines. No data flows, and nothing is deployed, until someone grants it.

The figures below are not a recording. They are views kept current by pipelines running now, and this page is told each time one changes.

Orders counted–since the pipeline started
Revenue–sample data, all regions
Slowest page– 

Live

Three views, each defined by one SQL statement and kept up to date as its inputs change. The data is synthetic: a generator stands in for a shop.

Average response time by page

Milliseconds, over every request seen. Longer is slower.

PageAverage
Waiting for the first figures.

View page_latency, held in two partitions with a second copy of each.

Revenue by region

Sum of order amounts, in sample dollars.

RegionRevenue
Waiting for the first figures.

View revenue_by_region.

How it works

Agents propose

An agent sees a registry of datasets and operators and writes a pipeline, or a SQL script, against it. Proposing costs nothing and moves nothing, so an agent can propose a pipeline before anyone asks for it.

People grant

Access is between a source and a sink, whatever happens in between. An admin grants or refuses each flow. Policies follow labels on the data through every operator, so a column marked pii is still marked after a join.

Views stay current

Everything travels as a stream of changes, so a table three steps downstream is updated by the change, not recomputed. A view is held in memory on your own nodes, in partitions, with copies that survive the loss of a node.

Publishing is a grant

The public is a principal like any other, called www. Grant it a view and every node serves that view to anyone, live. Revoke the grant and the address is gone in seconds.

How this page was made

An agent ran this script. An admin granted the flows it asked for, then granted three of the views to www. That is all the back end this page has.

CREATE MATERIALIZED VIEW page_latency WITH (partitions = 2, replicas = 1) AS
  SELECT page, COUNT(*) AS views, AVG(ms) AS avg_ms FROM clicks GROUP BY page;

CREATE MATERIALIZED VIEW slowest_pages AS
  SELECT page, avg_ms FROM page_latency ORDER BY avg_ms DESC LIMIT 3;

CREATE MATERIALIZED VIEW revenue_by_region AS
  SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue FROM orders GROUP BY region;

What the page reads

Each view has an address. It answers with the view as it stands, then with every change, as server-sent events.



What it cannot read

The orders themselves carry an email address, labelled pii, and a policy keeps that label inside. No grant publishes them. Ask for them and the answer is the same as for something that does not exist:

checking…

Status

Substation is early and is not open for sign-up. What you see is one small cluster of three nodes with sample data, shown to a few people. This page reaches one node, through one door that serves published views and these files and nothing else.