Declaring a requirement on an operation does not assert that the operation satisfies it. The verifier must prove, disprove, or report an unknown verdict independently.
Operation fields
Every operation belongs to exactly one service and contains the following fields:Inputs
An input is a possible source of an invocation. An operation may declare multiple inputs; a concrete invocation is associated with the one that triggered it. There are two input kinds.Request inputs
A request input declares a directly invoked operation — think of it as a synchronous API endpoint. It carries aschema for the request payload, an optional identity declaration, and a result contract.
identity declares where the logical identity of one request lives in the payload. keyed with a list of fields means: any two requests arriving at this input with equal values at those fields present equal payloads. This is an implementation guarantee that lets the verifier pin payload fields as replay-stable. unspecified provides no such fact.
result declares the Result<Ok, Err> contract the request returns. The err side may include a disposition:
terminal— observing this error terminally resolves the logical interactionretryable— observing this error ends the current attempt but admits anotherunspecified— no usable fact about terminality or retryability
Subscription inputs
A subscription input declares invocation from a topic. The operation is invoked once per delivered message matching the declared schema selection.messages selects which topic schemas trigger this subscription. kind: all admits every schema the topic carries; kind: only restricts to the listed schemas.
delivery declares the duplicate/loss guarantee:
dispatch.routing controls lane affinity:
dispatch.lane_concurrency controls how many invocations from the same lane may run simultaneously. bounded(1) is the important case for serializing same-key execution.
Effects
An effect declares work the operation may perform outside its immediate transaction state — publishing a message, calling another operation, or invoking an external system. Declaring an effect is not executing it; execution happens only through program steps.publication— publishes a message of a declared schema to a topic. No synchronous result.request— invokes a specific request input of another operation. Returns that input’s declaredresult.external— marks a boundary Conseqa cannot inspect. You supply the idempotency guarantee and an optional result contract.
Effect intents
An effect intent is a durable artifact that captures a specific effect instance inside a transaction. Establishing an intent atomically binds the effect’s payload to the transaction commit, so the payload is recoverable after a crash. The operation later executes the intent through a program step rather than re-deriving the payload.Transaction outputs
A transaction output is a typed value a transaction exports into the enclosing operation’s control flow. It is shaped by a declared schema and is available to program steps after the transaction executes or recovers.The program
program is the operation’s single explicit control structure — an ordered block of steps in which decisions nest further blocks, and every reachable path ends at return (for request inputs) or complete (for subscription inputs). The program is acyclic by construction.
Execution concurrency
execution.concurrency is an implementation fact about how many invocations of this operation may be simultaneously active across the entire deployment.
This is distinct from per-lane concurrency, which applies only to subscription dispatch. A global bound greater than one does not prove same-key serialization.
Requirements
Every operation may declare correctness obligations underrequirements. These are proof obligations — the verifier checks whether they hold from the facts declared in the model. See Requirements for the four kinds and how verdicts are produced.
A complete operation example
The following isoperation.create_order adapted from the flash checkout fixture — a backend operation with a request input, a deduplicated transaction, a durable effect intent, and idempotency plus recoverability requirements.