Files

27 lines
1.3 KiB
Markdown

# `@openwork/automations`
Pure, infrastructure-free Automations domain shared by hosted and on-prem Den.
It owns the contracts, deterministic once/daily/weekly schedule calculation,
DST behavior, lifecycle transitions, revision digests, occurrence identity,
idempotency, repository and engine-adapter ports, due-work selection, bounded missed
recovery, and repository conformance helpers.
It deliberately has no runtime adapter. Den supplies MySQL persistence, leases,
membership and model checks, Connect access, and the model execution adapter.
The OpenWork desktop is only a Den client and is never an Automation scheduler
or execution host.
## Hosted engine lifecycle
`AutomationEngineAdapter` is the provider-neutral boundary for hosted runs.
Den creates and persists an admission key before calling `admit`; retrying that
key must return the same persistence-safe receipt. The capability access token
belongs only to the admission request and must never be copied into the receipt.
Den persists each observed event by its stable idempotency key before advancing
the contiguous sequence cursor. After a process restart, it loads the receipt
and cursor, calls `read` for the durable state/result, and resumes `observe`
without an in-memory engine handle. Cancellation uses the same receipt, so it
also survives scheduler ownership changes and Den restarts.