Resources, Live Data, and History

A resource is a named product-level data contract. The resource catalog tells clients what a running strategy actually exposes.

Identity

Every live resource has a canonical key, for example:

bar://okx/BTCUSDT@1m
book://okx/BTCUSDT@full
factor://spread_mean/btcusdt.okx@bar:1m

Keys are case-sensitive at the authoring boundary and normalized by the runtime. External clients should use the catalog’s returned key verbatim.

Contract dimensions

The catalog contract makes independent decisions explicit:

Field

Question answered

model

What domain value does this resource represent?

payloadSchema

What physical payload is delivered?

deliveryModel

Latest value, snapshot plus deltas, append events, query snapshot, or in-process signal?

historyModel

Is it live-only, absent from history, or backed by a durable model?

replayPolicy

What initial state can a new subscriber receive?

mergeModel

How should multiple frames form one client view?

dropPolicy

Can updates be coalesced or resynchronized, or must none be dropped?

visibility

Is the data public market, private account, derived, or internal?

Live delivery

Bars and scalar factors usually behave as latest-value streams. Books require a projected snapshot followed by ordered deltas. Account and execution events are append-oriented and may require lossless handling. A generic WebSocket consumer must branch on the contract instead of treating every frame as a chart point.

History is separate

A resource appearing in the live catalog does not imply persisted rows. Check historyModel first. History is also run-scoped: the same instance can have multiple starts with distinct run_id values.

Use an exact run ID in exported reports and automation. current is useful for an operator looking at the active run but can change between requests.

Availability states

The following states answer different questions:

  • declared means the runtime described the resource;

  • active means it has recent live publication evidence;

  • persisted means matching durable rows exist for the selected run;

  • available capability means the runtime supports the corresponding query or stream family.

No one state implies all the others. Terminal keeps these distinctions visible in Inspect, Data Store, and Debug.