The concepts behind execution control.
How Herkus thinks about real-world actions, and the terms we use. This page describes concepts and observable behavior, not internal implementation.
Five ideas.
Real-world effect
A persistent change caused through an external system: a payment, a changed record, a sent message, a physical movement. Reading data is not an effect in this sense.
Approved boundary
The limit on what an admitted action may do: target, operation, parameters, amounts, speeds. If none is supplied, the boundary is the action that was admitted, so it cannot be turned into something else before it is sent.
Execution validity
Whether the execution proposing the action is still the current one. Retries, failover, replanning and reassignment create new executions; older ones lose their standing.
Effect fact
What is known about whether the effect occurred. It belongs to the effect itself, not to the execution, task or approval that caused it, which is why it survives when executions are replaced.
Joint decision
The three conditions are evaluated together, from a consistent view, before release. Satisfying one never substitutes for another, and only one request may cross into the real world.
Effect scope
Actions that compete for the same effect are treated as one, whichever agent, tool, provider or path proposes them.
What is known about an effect.
| State | Meaning | What happens next |
|---|---|---|
| UNRELEASED | Nothing has been sent yet. | May be released if all conditions allow. |
| UNKNOWN | A request was sent, but it cannot yet be established whether the effect occurred. | The same effect is held until evidence establishes the facts. |
| EFFECT_CONFIRMED | Evidence establishes that the effect occurred. | The same effect is not sent again. |
| NO_EFFECT_CONFIRMED | Evidence establishes both that the effect did not occur and that the earlier request can no longer cause it. | A new attempt may be considered, subject to all conditions again. |
Where Herkus sits.
Who are you?
What are you generally allowed to call?
How do I resume after a failure?
May this specific real-world effect still happen now, and has it already happened?
Go deeper with our team.
Bring your architecture and the failure cases you care about.