Build structured activity details by correlating stream messages (inputs, timing, retries) with the process hierarchy (outputs).
Stream messages carry the raw data that flowed through each activity:
data contains the activity input argumentsdad (dimensional address) reveals cycle iterations (e.g., ,0,1,0 = 2nd cycle)created_at / expired_at give precise timingretry_attempt tracks retriesThe process hierarchy carries activity outputs organized by dimension. This method merges both into a flat, dashboard-friendly list.
Export a job as a structured JobExport.
Reads the raw job hash from the store, inflates symbolized keys into
readable paths, and organizes data into process, dependencies,
and status sections.
When enrich_inputs is true, also fetches stream message history and
produces a flat activities array with per-activity input/output,
timing, retry attempts, and cycle iteration info.
the job ID to export
controls enrichment behavior
Decode a raw job hash into a structured JobExport.
Walks every key in the flat hash and classifies it:
aBC,0,0) — activity process state, organized into
a nested hierarchy by dimension path and symbolized keyaBC) — top-level job state (done, response, error, etc.)The process result is a nested tree where dimensions are path segments
(e.g., { "0": { "0": { "worker": { "output": { "data": ... } } } } }).
the raw key-value hash from the store
raw dependency strings from the store
structured export with process tree, dependencies, and status
Parse raw dependency strings into structured DependencyExport entries.
Each dependency string encodes the action type, topic, group ID, and job ID of a spawned sub-job (child workflow, hook, or signal cleanup). The job ID suffix reveals whether it originated from a hook (dimensional address + counter) or the main flow (counter only).
raw dependency strings from the store
accumulator for action tracking (hooks vs main flow)
structured dependency list
System-level exporter for HotMesh job data. Decodes the flat, symbolized hash stored in Redis/Postgres into a human-readable JobExport with three sections:
0/0/worker/output/data).Optionally, set
enrich_inputs: trueto produce a flatactivitiesarray (ActivityDetail[]) that merges stream message history (inputs, timing, retries) with process outputs — useful for dashboards and debugging views.Remarks
This is the lower-level exporter used by the HotMesh engine directly. For durable workflow exports, use the
ExporterServiceinservices/durable/exporterwhich produces structured timeline and execution history formats.