No-Code SaaS Automation Platform · View 11 of 21 · Data
Decisions
- step_attempt is keyed (run_id, step_id, attempt) and carries effect_key, derived from the run, the step and the logical attempt. A retry reuses the key; a replay mints a new logical attempt. That distinction is the whole difference between 'try again' and 'do it again'.
- automation_version is an entity rather than a mutable automation row: a run in flight completes under the version it started with, so the definition must be immutable and addressable.
- credential is separated from connection so the ciphertext and key reference live in the custody account while the connection's state and scopes stay queryable by the control plane.
- connector_version carries replay_class, making replay safety a stored, versioned property rather than something inferred at call time.
Assumptions
- trigger_event holds a payload_ref rather than the payload, so the 30-day retention and residency rules apply to object storage rather than to the index.
- workspace carries residency_region, and it is immutable once set.
Deliberately omitted
- Quota counters, run leases and subscription state are not modelled here: they are operational state with their own lifecycle, shown as zones in view 10.