proven, unknown, or disproven, each backed by the facts the verifier relied on.
What Conseqa verifies
Conseqa focuses on four families of correctness properties at the operation level:- Serialization — same-key invocations do not execute concurrently. Proved from topic ordering, dispatch routing, and lane concurrency facts.
- Ordering — same-key invocations for which a meaningful logical precedence exists preserve that precedence through execution. Stronger than serialization: a non-FIFO mutex may serialize without ordering.
- Idempotency — repeated attempts representing the same logical invocation do not cause externally distinguishable duplicate logical work. Proved across the full cascade: transactions, publications, outbound requests, and external effects.
- Recoverability — the logical invocation reaches a valid terminal after any modeled interruption. A progress obligation, separate from idempotency.
result: replay_consistent qualifier on an idempotency requirement, which asks the further question: do repeated admitted attempts return the same result variant and a replay-equivalent payload?
The two tools
Conseqa ships two CLI binaries built from the same codebase.conseqa validates a YAML model for structural coherence and then verifies its declared requirements. Validation errors are fatal — verification is only meaningful over a coherent model. After a clean validation pass, the verifier discharges each declared obligation and prints a summary line:
--report <PATH> for downstream tooling or archiving.
conseqa-viz renders your model as a single self-contained HTML file. It produces a system graph (services, operations, topics, external systems, and the edges between them), per-operation program drill-downs, and interactive state-machine graphs. Pass --verify to run the checker in-process and overlay obligation status directly on the visualization, or pass --report <PATH> to overlay a report you produced earlier. The HTML output makes no external network requests and can be opened directly from disk, attached to a pull request, or embedded in a design document.
The epistemic proof model
Conseqa’s verdicts are epistemic: they reflect what the verifier can establish from the declarations in your model, not assertions about runtime behavior.
This epistemic stance carries through to the DSL itself.
unspecified on a topic’s ordering, a transaction’s idempotency, or a subscription’s delivery does not mean the property is false — it means the model provides no usable fact. Absence of a guarantee is not evidence of a violation, and the verifier never infers one from silence.
Conditional proofs
Every proof Conseqa produces is conditional on the real implementation satisfying the declarations used by the proof. A proof that relies onserializable transaction isolation, a deduplicated_by external boundary, or at_least_once delivery is invalid if the concrete implementation does not actually provide those semantics. Conseqa verifies structure; conformance to the model is your responsibility.
How the DSL describes your architecture
A Conseqa model is a YAML file with a fixed set of top-level keys:
A structurally valid model is not necessarily a safe one. Validation establishes coherence; verification establishes whether requirements follow from the declared facts.
Quickstart
Write and verify your first model in minutes.
Core Concepts
Deep-dive into operations, requirements, and the proof mechanics.