ETS-backed cache for compiled workflow IR.
Keyed by {tenant_id, workflow_handle, artifact_hash} to enforce tenant isolation.
This is intentionally simple: hot-reload is achieved by invalidation/eviction, not code loading or module generation.
Summary
Functions
@spec ensure_started() :: :ok
@spec get( {WorkflowStem.Types.tenant_id(), WorkflowStem.Types.workflow_handle(), WorkflowStem.Types.artifact_hash()} ) :: {:ok, WorkflowStem.Types.ir()} | :miss
@spec invalidate(WorkflowStem.Types.tenant_id(), WorkflowStem.Types.workflow_handle()) :: non_neg_integer()
@spec put( {WorkflowStem.Types.tenant_id(), WorkflowStem.Types.workflow_handle(), WorkflowStem.Types.artifact_hash()}, WorkflowStem.Types.ir() ) :: :ok