All field notes

Governed execution

What Policy Governs a Workflow That Outlives the Policy?

Long-running autonomous processes need explicit semantics for policy change. Treat the policy revision as execution state, and make every transition visible, approved and auditable.

MP
Max PerfiljevFounder & CEO, AES · Architect of Autonomous Organizations
Read in Russian

A workflow can wait longer than the rule that authorized it. It may pause for a human approval, a supplier response, a payment settlement, a regulatory filing or a signal from another system. Days, months and sometimes years can pass. During that time, risk tolerance changes, permissions are withdrawn, compliance rules are revised and new prohibitions appear.

Most runtime designs treat these changes as configuration deployment: distribute a new policy, activate it, and let future evaluations use it. That is necessary, but it does not answer the harder question. What governs an in-flight process that began under yesterday’s legitimate rules and reaches a consequential action under today’s different ones?

For an autonomous organization, this is not an edge case. It is a core property of durable work. A process that cannot explain which policy governed each decision cannot reliably assign responsibility, investigate a disputed action or manage a controlled transition in operating rules.

Policy revision is execution state

The useful precedent comes from durable workflow versioning. Microsoft Durable Task permanently associates a version with an orchestration instance when that instance is created. Newer workers can continue executing instances created under older versions, while older workers are prevented from processing newer-version instances. The mechanism concerns orchestration code, not organizational policy. But it establishes an important architectural principle: long-running execution needs an explicit relationship to the versioned dependency under which it started.

A governed runtime should apply the same discipline to policy. Each process instance should carry a policy epoch: an immutable identifier for the approved policy set in force when the instance began, or when it entered a defined new phase. The epoch is not a claim that the process will always remain under that policy. It is the recorded starting point from which any later transition is made explicit.

A policy release is not complete when it reaches policy engines. It is complete when the organization has defined what happens to work already in motion.

Workflow version and policy revision must remain separate fields. Code and policy change for different reasons and on different schedules. A workflow may be unchanged while a spend threshold is reduced. Policy may be unchanged while an orchestration is repaired. Combining their identifiers hides the dependency that matters in an investigation: which execution logic ran, and which rules authorized its consequential decision.

Distribution is not transition semantics

Policy tooling provides useful primitives, but those primitives do not settle the lifecycle of a running business process. Open Policy Agent bundles can contain a revision identifier in their manifest. OPA can load updated policy without restart and enforce it immediately after activation. Distributed instances receive bundles with eventual consistency. Signed bundles can protect policy integrity; if verification or activation of a replacement fails, OPA retains the existing bundle.

Those are strong controls for distribution and activation. They do not determine whether a procurement process halfway through approval should stay on its original rule, be checked again at its next boundary, be migrated to a new procedure, or be stopped by a newly issued prohibition. Immediate activation at the evaluator is therefore not, by itself, a complete governance model for durable work.

OPA decision logs can include the policy bundle revision used for an evaluation, together with a decision identifier, input, result and trace context. This is a concrete audit primitive. It can answer which policy revision produced a recorded decision. It cannot, on its own, show that the process was entitled to remain on that revision after a later policy release. The transition decision must be modeled and logged too.

Give every policy release a transition class

The practical answer is to classify every approved policy release by its effect on in-flight work. This is an architectural recommendation, not a lifecycle supplied end to end by any one workflow or policy product.

  • Prospective only: new instances begin under the new epoch; existing instances remain pinned to their established epoch.
  • Checkpoint re-evaluation: existing instances remain on their epoch until a defined control point, such as before payment, contract execution, publication or external dispatch. At that boundary, the runtime evaluates them under the new policy.
  • Mandatory migration: the old path is incompatible with the new rule. A defined and approved procedure moves affected instances into a new state, obtains additional evidence or routes them for human review.
  • Emergency supersession: a narrowly defined emergency deny rule overrides both old and new ordinary epochs immediately. This is appropriate for revoked authority, newly prohibited actions or comparable urgent constraints.

These classes prevent two weak defaults. The first is silent pinning: every old process continues indefinitely because no one designed a transition. The second is silent mixing: a process starts under one policy and receives decisions from another merely because a bundle was updated. Both obscure accountability. Neither gives operators a clear queue of work that requires intervention.

The chosen class should travel with the release record. For every affected instance, store the policy epoch, the selected transition behavior, the approval record and effective time. If migration cannot be completed automatically, it should appear as operational work: a visible queue with an owner, status and resolution path. Incompatibility is a business condition, not an exception to bury in runtime logs.

Control points turn policy change into an operating procedure

Checkpoint re-evaluation deserves careful design. A control point is not simply any function call. It is a named boundary before an action with material consequence: releasing funds, changing access, committing a contract, sending regulated information or instructing an external system. The process pauses long enough to obtain the current decision, records the result and then either continues, changes route or escalates.

This concentrates re-evaluation where it has practical meaning. Rechecking every internal transition can produce noise without reducing meaningful risk. Rechecking only at process creation leaves too much authority in stale assumptions. The right boundaries are determined by the organization’s consequential actions and its tolerance for the work already completed before a policy change takes effect.

An emergency supersession is different. It should not be a convenient way to bypass ordinary release discipline. It needs a narrow scope, explicit authority, an effective time and a review path. Its purpose is to prevent an action that is no longer permissible, not to silently rewrite the history or ordinary operating terms of every active process.

Admission, evidence and reconstruction

A policy epoch should enter production through controlled change management. Amazon Verified Permissions recommends schemas for production because validation can detect invalid entities, attributes and actions before a policy is accepted. This makes schema validation a useful admission gate for an epoch. It does not prove that the policy is commercially, legally or operationally correct; that remains an approval responsibility.

NIST AI RMF describes governance as continuous across an AI system’s lifespan, including ongoing monitoring, periodic review, documented responsibilities and safe decommissioning. NIST SP 800-53 configuration-change controls call for controlled changes to be reviewed, approved or disapproved, documented, implemented and retained. Neither source prescribes policy epochs or the four transition classes. Together, they support treating a policy change as a controlled operational event rather than an untracked configuration edit.

For each consequential decision, the runtime should emit at least the process identifier, workflow version, policy revision, transition reason and decision result. Where investigation or reproduction matters, preserve the decision input, relevant policy data, tool state and other execution dependencies as appropriate. Logging a policy revision alone does not promise deterministic replay. It only establishes one necessary part of the evidence.

The policy timeline belongs beside the process timeline

Consider a long-running process that began in policy epoch P1. P2 is approved. New instances start on P2. Low-risk existing instances remain pinned to P1. Selected processes re-evaluate at their next control point. Processes whose old state is incompatible with P2 enter a migration queue. A narrowly scoped emergency deny rule can override ordinary epochs immediately. Each consequential decision records not only its result but why that process was governed by that revision at that moment.

This model accepts a basic fact of organizational automation: a running process has history. Policy cannot be treated as a timeless lookup if the organization expects processes to survive change without losing their legal and operational footing.

The operating consequence is straightforward. Policy owners must publish more than rules. They must declare the transition behavior of each revision. Runtime owners must enforce that behavior at named boundaries. Operations teams must own unresolved migrations. And auditors must be able to read the policy timeline beside the process timeline.

That is the difference between updated policy and governed change. The first changes what an evaluator can return. The second determines how an autonomous organization changes its mind while work is still underway.

BUILD WITH AES

Turn architecture into an operating company.

AES connects strategy, tasks, organizational memory, knowledge, agents, people and approvals in one execution environment.