Skip to content

The row is the production log

Resolving from anywhereHTTPSDKCLIDashboardresolvesearchByFacetsended_at

A station resolves its in-flight row with the run's result, so the work queue is also the record of what was produced and how long it took.

The situation

Each machine run opens a running row and closes it when the run ends. Reporting later needs every completed run, which station ran it, the result and the duration.

The recipe

services/station.ts
await lt.escalations.resolve({
id: runRowId,
resolverPayload: { result: 'success' },
metadata: { outcome: 'success', unitsProduced: 6 },
});
Every successful run on the cell
ltc esc list --role cell-a --status resolved --facets '{"outcome":"success"}' --json

The resolver payload wakes the workflow. The metadata patch is the durable record on the row. The row’s own created_at and resolved_at bound the run.

The guarantee

There is no side table to keep in step: the outcome lands in the same atomic update that closes the row. The lt_escalations view adds ended_at, the instant the row left the live set, so every row is one interval [created_at, ended_at) that the analytics surfaces read directly. See Data model.