Expand description
Process lifetime — Permanent (re-converging) vs Ephemeral (auto-SIGTERM on Attested / TTL / Failed).
The wire shape follows the same “exactly-one-optional-field” pattern as
Intent — one tagged-union idiom across the typescape.
Lisp authoring:
:lifetime (:permanent)
:lifetime (:ephemeral :ttl "1h"
:teardown OnAttested
:max-concurrent 1)Default = Permanent — every existing Process keeps its current behavior.
Structs§
- Ephemeral
Lifetime - Ephemeral lifetime — Process auto-terminates per
teardown_policy. - Lifetime
- Lifetime slot on
ProcessSpec. Exactly one variant should be populated; when both are unset the resolver returnsPermanent. - Permanent
Lifetime - Permanent lifetime — the existing Process behavior. SIGHUP re-converges; SIGTERM terminates only on explicit operator action.
- Unknown
Lifetime Kind - Unknown
Teardown Policy
Enums§
- Lifetime
Error - Lifetime
Kind - Closed-set discriminator over
Lifetime’s two tagged-union slots. Single source of truth that drivesLifetime::variant’s ambiguity resolver, the reverseLifetimeVariant::kindprojection, and anyselect-style routing. Adding a third lifetime variant (e.g. a futureBurstslot for budget-capped non-TTL lifetimes) lands at oneALLentry + oneas_strarm + oneselectarm + oneLifetimeVariant::kindarm — exhaustively checked by the compiler. - Lifetime
Variant - Resolved enum view used by the reconciler.
- Teardown
Policy - When an ephemeral Process self-terminates.
Constants§
- DEFAULT_
EPHEMERAL_ MAX_ CONCURRENT - Workspace-canonical default cluster-wide concurrency budget wire-
form — the
u32handle over the same1valuedefault_ephemeral_max_concurrentreturns. Use this const for compile-time comparisons; usedefault_ephemeral_max_concurrentfor the serdedefault = "…"slot contract. - DEFAULT_
EPHEMERAL_ TTL - Workspace-canonical humantime default TTL wire-form — the
&'static strhandle over the same"1h"valuedefault_ephemeral_ttlreturns. Use this const for compile-time comparisons and format arguments; usedefault_ephemeral_ttlfor the ownedStringthe serdedefault = "…"slot contract expects.
Functions§
- default_
ephemeral_ max_ concurrent - Workspace-canonical default cluster-wide concurrency budget for
every ephemeral authoring surface — the ONE substrate owner of the
1wire-form default that pre-lift lived as TWO identical privatefn default_max_concurrent() -> u32 { 1 }shims acrossEphemeralLifetime+crate::ephemeral::EphemeralSpec. - default_
ephemeral_ ttl - Workspace-canonical humantime default TTL for every ephemeral
authoring surface — the ONE substrate owner of the
"1h"wire-form default that pre-lift lived as THREE identical privatefn default_ttl() -> String { "1h".to_string() }shims across [tatara-process]’s ownEphemeralLifetime+ [crate::ephemeral:: EphemeralSpec] + [tatara-reconciler]’sEphemeralDefaults.