Optionalcontext: JobStateFlatten activity-level context paths into store-ready key/values
Write the dimensional address into the state payload
Flatten job-level context paths into store-ready key/values
Build the list of child activities to transition to
Resolve expire and persistent policies from config
Bootstrap $self, $job refs and output.metadata.au timestamp
Extract the job status from the last transaction result
Did the semaphore reach its threshold? (from transaction results)
Persist the full activity + job state in a single store call
Optionaltxn: ProviderTransactionIncrement/decrement the job semaphore
Optionaltxn: ProviderTransaction
Base class for every node in the workflow DAG.
An activity's lifecycle flows top-to-bottom through this file: enter → load state → map data → persist → transition → complete.
Each section delegates to a purpose-specific module inside
activity/. Open the module when you need implementation detail; read this file when you need the big picture.