Recorder¶
The recorder writes Parquet recordings, owns the in-memory catalog, and exports completed Recordings to a configured destination.
Module id: recorder.
Configuration¶
| Config type | Component ref | Description |
|---|---|---|
recstorage |
recorder.recstorage.main |
RecStorageConfiguration is the singleton recorder.recstorage.main storage config (RFC-017). |
s3upload |
recorder.s3upload.<id> |
S3UploadConfiguration is one recorder export profile (recorder.s3upload.<id>, RFC-015). |
usbexport |
recorder.usbexport.<id> |
UsbExportConfiguration is one recorder export profile writing to a removable filesystem (recorder.usbexport.<id>, RFC-024). |
Event: recording_completed (notification; the lifecycle journal is the durable authority).
Recording path¶
A measurement window from flower causes the recorder to persist channel data as Parquet parts. Completions are journaled, then the catalog is updated, then export workers are notified. Temp files use the _tmp_ prefix and are swept on the next recstorage activation.
Shutdown drops in-flight parts on purpose (power-cut). Completed parts are already renamed and parent-directory synced. See RFC-015.
Catalog¶
Authoritative inventory is the catalog, served over NATS - not a JetStream Recording stream. algol recording ls / info are the operator surface.
NATS endpoints¶
| Command | Request | Description |
|---|---|---|
recorder.recstorage.<id>.recording_get |
JSON | One catalogued Recording by its own ref - the ref column of a recording_list page - with its measurement, channel, size, digest and context. |
recorder.recstorage.<id>.recording_list |
JSON | Lists one page of the recorder's catalog: the Recordings a measurement and a channel filter match, in path order, with the page's place in the whole set - the effective offset and the total the filter matches. |
recorder.s3upload.<id>.start |
none | Opens an export run on this S3 upload profile; a start during a run is dropped. |
recorder.s3upload.<id>.stop |
none | Ends the export run on this S3 upload profile once the Recording in hand is finished; a stop while idle is dropped. |
recorder.usbexport.<id>.start |
none | Opens an export run on this USB export profile; a start during a run is dropped. |
recorder.usbexport.<id>.stop |
none | Ends the export run on this USB export profile once the Recording in hand is finished; a stop while idle is dropped. |
recording_list and recording_get are algol recording ls / info; an export run is started and stopped from a trigger.
Request/response: Messaging.