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 |
|---|---|
|
What domain value does this resource represent? |
|
What physical payload is delivered? |
|
Latest value, snapshot plus deltas, append events, query snapshot, or in-process signal? |
|
Is it live-only, absent from history, or backed by a durable model? |
|
What initial state can a new subscriber receive? |
|
How should multiple frames form one client view? |
|
Can updates be coalesced or resynchronized, or must none be dropped? |
|
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.