State Machine View: Lifecycle Diagrams in conseqa-viz
Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.
The state machine view renders a visual lifecycle diagram for any declared state machine in your model. Navigate to it from an operation’s header (when that operation drives the machine) or from the detail panel of any transition step in the Operation View.
The state machine view lives at #/machine/<id>. To link directly to a specific transition — for example, to share a link pointing at the transition a failing obligation names — use #/machine/<id>?t=<transition-id>. Selecting a transition in the graph or table updates the URL, so any link you copy from the address bar is already a deep link.
The state graph is an SVG diagram with states as nodes and transitions as directed arcs:
State nodes are labeled circles. The initial state is marked with an entry arrow.
Transition arcs are directed edges connecting a from state to a to state. Transitions that stay on the same state render as self-loops.
Side-effect badges (⚡) appear on transition arcs to indicate the number of side effects the transition owns.
Click any state node to open its detail panel. Click or select any transition arc to highlight it in both the graph and the transitions table below; the URL updates to include ?t=<transition-id> for sharing. Clicking a state node without selecting a transition drops the transition query from the URL.
A transition’s side effects are the publication, request, or external effects it owns. These effects are implicitly established as effect-intent artifacts by the transition step that applies the transition; the operation program later executes them with execute_effect_intent (or execute_effect_intent_async). The transition’s effect_intents map wires side-effect id to { bind, values } for each intent, and the mapping must be exact. Because a transition-containing transaction is never naturally replayable, its containing transaction must declare deduplicated_by for the recovery route to close. The Executors column shows which operations apply this transition and therefore carry responsibility for executing its side effects.Click any operation name in the Executors column to navigate to that operation’s Operation View.
When a report is loaded, transitions inherit their proof status. A transition whose associated obligations are all proven shows a green verdict chip; any unknown obligation turns it amber; any disproven obligation turns it red. This makes it easy to scan the transitions table for the specific lifecycle steps the checker could not discharge.
Use the ?t=<transition-id> deep link when filing a bug or design discussion. The link opens the machine view with the specific transition pre-selected in both the graph and the table, so your reader lands exactly where you intend.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Conseqa","colors":{"primary":"#5B4FCF","light":"#EDE9FF","dark":"#2D2460"},"favicon":"https://mintcdn.com/archspec/CgpsaKCVXill437h/favicon.svg?fit=max\u0026auto=format\u0026n=CgpsaKCVXill437h\u0026q=85\u0026s=fcfb437e6c8de76218c8ba7d2b92cc45","navbar":{"primary":{"type":"github","href":"https://github.com/umran/conseqa"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"archspec","hasAudioNarration":false,"actualSubdomain":"archspec","customDomains":["docs.conseqa.umran.ca"],"gitSource":{"type":"github","owner":"umran","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aa2a2cbaa1ac635e5bd65c9","collectionId":"f56c2ea9-4331-4a26-b87e-2004157e0ead","liveDeploymentHistoryId":"6aa2a2cbaa1ac635e5bd65c9","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aa2a2cbaa1ac635e5bd65c9","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Documentation","count":32},{"language":"default","tag":"Core Concepts","count":8},{"language":"default","tag":"DSL Reference","count":6},{"language":"default","tag":"Runtime Topology","count":5},{"language":"default","tag":"Visualization","count":4},{"language":"default","tag":"Guides","count":3},{"language":"default","tag":"Get Started","count":3},{"language":"default","tag":"Verification","count":3},{"language":"default","tag":"CLI Reference","count":2},{"language":"default","tag":"Commands","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"visualization/state-machine-view","slug":"/visualization/state-machine-view","pageMetadata":{"title":"State Machine View: Lifecycle Diagrams in conseqa-viz","sidebarTitle":"State Machine View","description":"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.","href":"/visualization/state-machine-view"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The state machine view renders a visual lifecycle diagram for any declared state machine in your model. Navigate to it from an operation’s header (when that operation drives the machine) or from the detail panel of any transition step in the `,_jsx(_components.a,{href:`/visualization/operation-view`,children:`Operation View`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`navigation-and-deep-links`,children:`Navigation and deep links`}),`\n`,_jsxs(_components.p,{children:[`The state machine view lives at `,_jsx(_components.code,{children:`#/machine/\u003cid>`}),`. To link directly to a specific transition — for example, to share a link pointing at the transition a failing obligation names — use `,_jsx(_components.code,{children:`#/machine/\u003cid>?t=\u003ctransition-id>`}),`. Selecting a transition in the graph or table updates the URL, so any link you copy from the address bar is already a deep link.`]}),`\n`,_jsx(Heading,{level:`2`,id:`page-header`,children:`Page header`}),`\n`,_jsx(_components.p,{children:`The header shows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The machine’s name and copyable ID`}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`governed object`}),` — the data object whose instances this machine tracks`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`state field path`}),` — which field on that object holds the current state`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`initial state`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`State count`}),` and `,_jsx(_components.strong,{children:`transition count`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Verdict tally`}),` — when a report is loaded, a count of proven/unknown/disproven obligations across all transitions`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`state-graph`,children:`State graph`}),`\n`,_jsx(_components.p,{children:`The state graph is an SVG diagram with states as nodes and transitions as directed arcs:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`State nodes`}),` are labeled circles. The initial state is marked with an entry arrow.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Transition arcs`}),` are directed edges connecting a `,_jsx(_components.code,{children:`from`}),` state to a `,_jsx(_components.code,{children:`to`}),` state. Transitions that stay on the same state render as self-loops.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Side-effect badges`}),` (⚡) appear on transition arcs to indicate the number of side effects the transition owns.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Click any state node to open its detail panel. Click or select any transition arc to highlight it in both the graph and the transitions table below; the URL updates to include `,_jsx(_components.code,{children:`?t=\u003ctransition-id>`}),` for sharing. Clicking a state node without selecting a transition drops the transition query from the URL.`]}),`\n`,_jsx(Heading,{level:`2`,id:`transitions-table`,children:`Transitions table`}),`\n`,_jsx(_components.p,{children:`Below the graph, the transitions table lists every declared transition with one row per transition:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Column`}),_jsx(_components.th,{children:`Contents`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Transition`}),_jsx(_components.td,{children:`The transition ID, copyable`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`From`}),_jsx(_components.td,{children:`The set of states the transition is legal from`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`To`}),_jsx(_components.td,{children:`The target state`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Side effects`}),_jsx(_components.td,{children:`Each side effect, structured as kind, effect ID, and target (topic or operation)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Executors`}),_jsx(_components.td,{children:`The operations that execute this transition’s side effects via intents (with links)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Triggers`}),_jsx(_components.td,{children:`The transaction steps that apply this transition (with links to the owning operation)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Verdict`}),_jsx(_components.td,{children:`When a report is loaded, the obligation status for this transition’s obligations`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`side-effects-and-executors`,children:`Side effects and executors`}),`\n`,_jsxs(_components.p,{children:[`A transition’s side effects are the publication, request, or external effects it owns. These effects are `,_jsx(_components.strong,{children:`implicitly established as effect-intent artifacts`}),` by the `,_jsx(_components.code,{children:`transition`}),` step that applies the transition; the operation program later executes them with `,_jsx(_components.code,{children:`execute_effect_intent`}),` (or `,_jsx(_components.code,{children:`execute_effect_intent_async`}),`). The transition’s `,_jsx(_components.code,{children:`effect_intents`}),` map wires side-effect id to `,_jsx(_components.code,{children:`{ bind, values }`}),` for each intent, and the mapping must be exact. Because a transition-containing transaction is never naturally replayable, its containing transaction must declare `,_jsx(_components.code,{children:`deduplicated_by`}),` for the recovery route to close. The `,_jsx(_components.strong,{children:`Executors`}),` column shows which operations apply this transition and therefore carry responsibility for executing its side effects.`]}),`\n`,_jsxs(_components.p,{children:[`Click any operation name in the Executors column to navigate to that operation’s `,_jsx(_components.a,{href:`/visualization/operation-view`,children:`Operation View`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`proof-overlays`,children:`Proof overlays`}),`\n`,_jsx(_components.p,{children:`When a report is loaded, transitions inherit their proof status. A transition whose associated obligations are all proven shows a green verdict chip; any unknown obligation turns it amber; any disproven obligation turns it red. This makes it easy to scan the transitions table for the specific lifecycle steps the checker could not discharge.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use the `,_jsx(_components.code,{children:`?t=\u003ctransition-id>`}),` deep link when filing a bug or design discussion. The link opens the machine view with the specific transition pre-selected in both the graph and the table, so your reader lands exactly where you intend.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"State Machine View: Lifecycle Diagrams in conseqa-viz","sidebarTitle":"State Machine View","description":"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.","href":"/visualization/state-machine-view"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Navigation and deep links","slug":"navigation-and-deep-links","depth":2,"children":[]},{"title":"Page header","slug":"page-header","depth":2,"children":[]},{"title":"State graph","slug":"state-graph","depth":2,"children":[]},{"title":"Transitions table","slug":"transitions-table","depth":2,"children":[{"title":"Side effects and executors","slug":"side-effects-and-executors","depth":3,"children":[]}]},{"title":"Proof overlays","slug":"proof-overlays","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"archspec","siteName":"Conseqa","title":"State Machine View: Lifecycle Diagrams in conseqa-viz - Conseqa","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-10T11:35:29.487Z","originalFileLocation":"visualization/state-machine-view.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Conseqa\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintcdn.com/archspec/CgpsaKCVXill437h/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=CgpsaKCVXill437h\u0026amp;q=85\u0026amp;s=fcfb437e6c8de76218c8ba7d2b92cc45\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/archspec/CgpsaKCVXill437h/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=CgpsaKCVXill437h\u0026amp;q=85\u0026amp;s=fcfb437e6c8de76218c8ba7d2b92cc45\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/archspec/CgpsaKCVXill437h/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=CgpsaKCVXill437h\u0026amp;q=85\u0026amp;s=fcfb437e6c8de76218c8ba7d2b92cc45\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/archspec/CgpsaKCVXill437h/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=CgpsaKCVXill437h\u0026amp;q=85\u0026amp;s=fcfb437e6c8de76218c8ba7d2b92cc45\">\u003cmeta data-mint-head property=\"og:title\" content=\"State Machine View: Lifecycle Diagrams in conseqa-viz - Conseqa\">\u003cmeta data-mint-head property=\"og:description\" content=\"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Conseqa\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.conseqa.umran.ca/visualization/state-machine-view\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://archspec.mintlify.app/_mintlify/api/og/v2?division=Visualization\u0026amp;title=State+Machine+View%3A+Lifecycle+Diagrams+in+conseqa-viz\u0026amp;description=Inspect+any+state+machine+as+an+interactive+lifecycle+diagram+%E2%80%94+states%2C+transitions%2C+side+effects%2C+and+obligation+verdicts+%E2%80%94+with+shareable+deep+links.\u0026amp;theme=58f7995d7e1441fc71279f43\u0026amp;signature=309d5c678cd3789ded4654d15591120d2fd05ca8becde0f10600d80b02deae1d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"State Machine View: Lifecycle Diagrams in conseqa-viz - Conseqa\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://archspec.mintlify.app/_mintlify/api/og/v2?division=Visualization\u0026amp;title=State+Machine+View%3A+Lifecycle+Diagrams+in+conseqa-viz\u0026amp;description=Inspect+any+state+machine+as+an+interactive+lifecycle+diagram+%E2%80%94+states%2C+transitions%2C+side+effects%2C+and+obligation+verdicts+%E2%80%94+with+shareable+deep+links.\u0026amp;theme=58f7995d7e1441fc71279f43\u0026amp;signature=309d5c678cd3789ded4654d15591120d2fd05ca8becde0f10600d80b02deae1d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/archspec/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Conseqa\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5B4FCF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.conseqa.umran.ca/visualization/state-machine-view\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/visualization/state-machine-view.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.conseqa.umran.ca/#organization\",\"name\":\"Conseqa\",\"url\":\"https://docs.conseqa.umran.ca\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.conseqa.umran.ca#website\",\"name\":\"Conseqa\",\"url\":\"https://docs.conseqa.umran.ca\",\"publisher\":{\"@id\":\"https://docs.conseqa.umran.ca/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view#webpage\",\"url\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view\",\"name\":\"State Machine View: Lifecycle Diagrams in conseqa-viz\",\"description\":\"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.\",\"dateModified\":\"2026-09-10T11:35:29.487Z\",\"isPartOf\":{\"@id\":\"https://docs.conseqa.umran.ca#website\"},\"breadcrumb\":{\"@id\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Visualization\",\"item\":\"https://docs.conseqa.umran.ca/visualization/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"State Machine View: Lifecycle Diagrams in conseqa-viz\",\"item\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view#article\",\"headline\":\"State Machine View: Lifecycle Diagrams in conseqa-viz\",\"name\":\"State Machine View: Lifecycle Diagrams in conseqa-viz\",\"description\":\"Inspect any state machine as an interactive lifecycle diagram — states, transitions, side effects, and obligation verdicts — with shareable deep links.\",\"url\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view\",\"mainEntityOfPage\":{\"@id\":\"https://docs.conseqa.umran.ca/visualization/state-machine-view#webpage\"},\"dateModified\":\"2026-09-10T11:35:29.487Z\",\"publisher\":{\"@id\":\"https://docs.conseqa.umran.ca/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.conseqa.umran.ca#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Conseqa\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Conseqa","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Conseqa: Formal Proofs for Distributed Correctness","sidebarTitle":"Introduction","href":"/introduction"},{"title":"Quickstart: Verify Your First Conseqa Model in Minutes","sidebarTitle":"Quickstart","href":"/quickstart"},{"title":"Install Conseqa: Build from Source and Verify Setup","sidebarTitle":"Installation","href":"/installation"}]},{"group":"Core Concepts","pages":[{"title":"Conseqa Model Overview: Application Layer and Runtime Topology","sidebarTitle":"Model Overview","href":"/concepts/model-overview"},{"title":"Conseqa Services and Schemas Reference","sidebarTitle":"Services and Schemas","href":"/concepts/services-and-schemas"},{"title":"Conseqa Data Models and Outboxes","sidebarTitle":"Data Models and Outboxes","href":"/concepts/data-models-and-outboxes"},{"title":"Conseqa Operations: Inputs, Programs, and Effects","sidebarTitle":"Operations","href":"/concepts/operations"},{"title":"Conseqa Transactions: Idempotency, Isolation, and Steps","sidebarTitle":"Transactions","href":"/concepts/transactions"},{"title":"Conseqa Topics: Logical Channels Without Runtime Facts","sidebarTitle":"Topics and Messaging","href":"/concepts/topics-and-messaging"},{"title":"Conseqa State Machines and Transition Side Effects","sidebarTitle":"State Machines","href":"/concepts/state-machines"},{"title":"Conseqa Operation Requirements: Serialization, Ordering, Idempotency, and Recoverability","sidebarTitle":"Requirements","href":"/concepts/requirements"}]},{"group":"Runtime Topology","pages":[{"title":"L1 Runtime Topology: How the Abstract Machine Runs","sidebarTitle":"Overview","href":"/runtime/overview"},{"title":"Topic and Subscription Runtime: Transport Semantics in Conseqa","sidebarTitle":"Topic \u0026 Subscription Runtime","href":"/runtime/topic-and-subscription-runtime"},{"title":"Outbox Runtime: Consumption and Dispatch Semantics","sidebarTitle":"Outbox Runtime","href":"/runtime/outbox-runtime"},{"title":"Routers and Execution Pools: Request Routing and Concurrency","sidebarTitle":"Routers \u0026 Pools","href":"/runtime/routers-and-pools"},{"title":"Storage Layouts: Physical Partitioning for Data Objects","sidebarTitle":"Storage Layouts","href":"/runtime/storage-layouts"}]},{"group":"DSL Reference","pages":[{"title":"Conseqa DSL Model Structure: All Top-Level Keys","sidebarTitle":"Model Structure","href":"/dsl/model-structure"},{"title":"Conseqa DSL Field Types, Scalars, and Schema Forms","sidebarTitle":"Field Types","href":"/dsl/field-types"},{"title":"Conseqa DSL Effects: Publication, Request, External","sidebarTitle":"Effects","href":"/dsl/effects"},{"title":"Conseqa Operation Program: All Steps and Control Flow","sidebarTitle":"Program Control","href":"/dsl/program-control"},{"title":"Async Effect Execution, Handles, and Synchronization Barriers","sidebarTitle":"Async Effects","href":"/dsl/async-effects"},{"title":"Value References, Field Paths, and Derivations DSL","sidebarTitle":"Value References","href":"/dsl/value-references"}]},{"group":"Verification","pages":[{"title":"How Conseqa Verifies Models: Validation, Forward Analysis, and Fixpoints","sidebarTitle":"How It Works","href":"/verification/how-it-works"},{"title":"Verification Verdicts: Proven, Unknown, and Disproven","sidebarTitle":"Verdicts","href":"/verification/verdicts"},{"title":"Obligation Report Format: JSON Structure and Fields","sidebarTitle":"Obligations Report","href":"/verification/obligations-report"}]},{"group":"Visualization","pages":[{"title":"Generate Interactive HTML Visualizations with conseqa-viz","sidebarTitle":"Overview","href":"/visualization/overview"},{"title":"System View: Services, Topics, Outboxes, and Routes in conseqa-viz","sidebarTitle":"System View","href":"/visualization/system-view"},{"title":"Operation View: Program Steps and Flow in conseqa-viz","sidebarTitle":"Operation View","description":"Drill into any operation to inspect its requirements, inputs, and full program control flow — transaction steps, effect executions, and proof verdicts.","href":"/visualization/operation-view"},{"title":"State Machine View: Lifecycle Diagrams in conseqa-viz","sidebarTitle":"State Machine View","href":"/visualization/state-machine-view"}]},{"group":"Guides","pages":[{"title":"Step-by-Step: Modeling a Flash-Sale Checkout in Conseqa","sidebarTitle":"Checkout Flow","description":"Build a flash-sale checkout model with transactional outbox, async payment, and downstream receipt dispatch — then prove idempotency and ordering through the verifier.","href":"/guides/modeling-a-checkout-flow"},{"title":"Proving Idempotency Requirements in Conseqa Models","sidebarTitle":"Proving Idempotency","href":"/guides/proving-idempotency"},{"title":"Integrating Conseqa Verification into Your CI Pipeline","sidebarTitle":"CI Integration","href":"/guides/ci-integration"}]}]},{"tab":"CLI Reference","pages":[{"title":"CLI Reference","href":"/cli/conseqa"}]}]},"basePath":"","title":"State Machine View: Lifecycle Diagrams in conseqa-viz - Conseqa","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}