Event Schema

Each daggle run produces an events.jsonl file: one JSON object per line, append-only, and safe for concurrent writes. Every event includes a v field indicating the schema version (currently 1).

Event types

dag_started

Emitted when a DAG run begins.

Field Type Description
type string "dag_started"
v integer Schema version
run_id string Unique run identifier
dag_name string DAG name
started string ISO 8601 timestamp
params object Parameters passed to the run
dag_hash string SHA-256 of the DAG definition at run time

step_started

Emitted when a step begins execution.

Field Type Description
type string "step_started"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
started string ISO 8601 timestamp
attempt integer Attempt number (1 for first try)

step_completed

Emitted when a step finishes successfully.

Field Type Description
type string "step_completed"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
ended string ISO 8601 timestamp
duration_seconds number Wall-clock duration
outputs object Key-value pairs emitted via output markers

step_failed

Emitted when a step fails.

Field Type Description
type string "step_failed"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
ended string ISO 8601 timestamp
error string Error message
attempt integer Attempt number

step_retried

Emitted when a failed step is scheduled for retry.

Field Type Description
type string "step_retried"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
attempt integer Attempt that failed
next_attempt integer Next attempt number
delay string Delay before retry (e.g. "5s")

step_skipped

Emitted when a step is skipped due to a when condition.

Field Type Description
type string "step_skipped"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
reason string Why the step was skipped

step_waiting_approval

Emitted when a step pauses for manual approval.

Field Type Description
type string "step_waiting_approval"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
message string Approval prompt message

step_approved

Emitted when a waiting step is approved.

Field Type Description
type string "step_approved"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
approved_by string Who approved (user or API)
timestamp string ISO 8601 timestamp

step_rejected

Emitted when a waiting step is rejected.

Field Type Description
type string "step_rejected"
v integer Schema version
run_id string Run identifier
step_id string Step identifier
rejected_by string Who rejected (user or API)
timestamp string ISO 8601 timestamp

dag_completed

Emitted when all steps succeed and the DAG finishes.

Field Type Description
type string "dag_completed"
v integer Schema version
run_id string Run identifier
ended string ISO 8601 timestamp
duration_seconds number Total DAG wall-clock duration

dag_failed

Emitted when the DAG fails.

Field Type Description
type string "dag_failed"
v integer Schema version
run_id string Run identifier
ended string ISO 8601 timestamp
error string Error message

Example

{"v":1,"type":"dag_started","run_id":"20260404-091500-abc12","dag_name":"etl-pipeline","started":"2026-04-04T09:15:00Z","params":{"department":"sales"},"dag_hash":"a1b2c3d4..."}
{"v":1,"type":"step_started","run_id":"20260404-091500-abc12","step_id":"extract","started":"2026-04-04T09:15:00Z","attempt":1}
{"v":1,"type":"step_completed","run_id":"20260404-091500-abc12","step_id":"extract","ended":"2026-04-04T09:15:42Z","duration_seconds":42.3,"outputs":{"row_count":"15234"}}
{"v":1,"type":"step_started","run_id":"20260404-091500-abc12","step_id":"transform","started":"2026-04-04T09:15:42Z","attempt":1}
{"v":1,"type":"step_failed","run_id":"20260404-091500-abc12","step_id":"transform","ended":"2026-04-04T09:16:01Z","error":"column 'revenue' not found","attempt":1}
{"v":1,"type":"step_retried","run_id":"20260404-091500-abc12","step_id":"transform","attempt":1,"next_attempt":2,"delay":"5s"}
{"v":1,"type":"dag_failed","run_id":"20260404-091500-abc12","ended":"2026-04-04T09:18:30Z","error":"step 'transform' failed after 3 attempts"}