Certain things can only be done under certain circumstances, so few processes always take the same course. In our simple example, we want to go into the details of cookery. Driven by hunger, we think about what we are going to cook today. We only know three recipes, so we choose one. We can either cook pasta or cook a steak or prepare a salad. Let’s say that these options are exclusive – we will never prepare more than one at a time. The point of decision on what to do next is called gateway. We decide based on available data (the chosen recipe) and we follow only one of the paths, which is a data-based exclusive gateway. We abbreviate “exclusive gateway” as XOR.
Bear in mind that a gateway is not a task! You have to determine facts and needs before reaching a gateway.
As in the diagram above, we place the crucial question before the gateway. This is our convention, which has proved its value in our projects. Possible answers go on parallel paths after the gateway, which is how the BPMN specification shows them. We always work with XOR gateways as follows:
Model the task that requires a decision for the XOR gateway.
Model the XOR gateway after that.
Create a question with mutually exclusive answers.
Model one outgoing path (or sequence flow) for each possible answer, and label the path with the answer.
Suppose that now we want a salad on the side. If you want salad no matter what, you could model it as we have done in this diagram:The total of the task times equals the running time of the process, which was a total of 48 minutes for pasta and 43 minutes for steak. Congratulations: you’ve just analyzed your first process based on key data!Still, this means waiting 23 or even 28 minutes until you can start to eat. Insufferable! You’re really hungry, but what can you do? Maybe you don’t prepare the salad first and then cook the pasta or the steak, but you work on both at the same time – in parallel. The appropriate symbol is the parallel gateway, or the “AND gateway” for short, as shown in here:Diagramming tasks as parallel does not make simultaneous processing compulsory. In contrast to the example shown before, it is also not imperative that you prepare the salad before starting other tasks. Parallel preparation does, however, reduce our total time by 10 minutes. It is classic process optimization to make tasks parallel as much as possible.Check yourself: What if we draw the same process, but leave the AND merge out for lack of space, and the path from the “prepare salad” task leads directly to the XOR merge. What happens if we instantiate the process, and we decide in favor of pasta?The token is generated and then cloned as always at the AND split. As soon as we finish preparing the salad, the token passes through the XOR merge and “eat meal” executes. Five minutes later,”cook pasta” also completes. Its token passes through the XOR merge and “eat meal” executes again! That’s not the behavior we wanted.
We want to make our process even more flexible: When we are hungry, we want to eat
Only a salad,
A salad and “something real,” like pasta or steak, or
Only something real.
If you want a more compact representation, you can use the data-based inclusive gateway – the OR gateway for short:
In practice, handling OR gateways is not as simple as these examples imply. It’s easy to understand that progress depends on waiting for another token to reach an OR merge. It can be harder to trace the synchronization rules with complex diagrams that sprawl across several pages.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Stratumn","colors":{"primary":"#4B35D2","light":"#c4ccff","dark":"#3a2aa9"},"favicon":"https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/favicon.svg?fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=98830f119947145b0bb33320436bd758","logo":{"light":"https://mintcdn.com/stratumn/ZLZL0fVzWovButfa/logo/light.svg?fit=max\u0026auto=format\u0026n=ZLZL0fVzWovButfa\u0026q=85\u0026s=da95401bd6fe81b834b92c5fb0bf87e3","dark":"https://mintcdn.com/stratumn/ZLZL0fVzWovButfa/logo/dark.svg?fit=max\u0026auto=format\u0026n=ZLZL0fVzWovButfa\u0026q=85\u0026s=0508328b6874ccf69c5cb1508b83ee62"},"api":{"openapi":"api-reference/open-api-v1.json"},"appearance":{"default":"dark","strict":false},"background":{"decoration":"windows"},"navbar":{"links":[{"label":"Support","href":"mailto:info@stratumn.com"}],"primary":{"type":"button","label":"Go to Trace","href":"https://trace.stratumn.com"}},"footer":{"socials":{"github":"https://github.com/stratumn","website":"https://trace.stratumn.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"stratumn","hasAudioNarration":false,"actualSubdomain":"stratumn","customDomains":["docs.stratumn.com"],"gitSource":{"type":"github","owner":"stratumn","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6adf3040fb05475c270ae86d","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Studio","count":36},{"language":"default","tag":"Configuration","count":26},{"language":"default","tag":"Workflow configuration","count":26},{"language":"default","tag":"API Reference","count":20},{"language":"default","tag":"Trace","count":13},{"language":"default","tag":"Action","count":8},{"language":"default","tag":"BPMN","count":6},{"language":"default","tag":"Databases","count":6},{"language":"default","tag":"Table","count":5},{"language":"default","tag":"Getting started","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"studio/bpmn/gateway","slug":"/studio/bpmn/gateway","pageMetadata":{"title":"Gateway","description":"Gateway in a process","href":"/studio/bpmn/gateway"},"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: \"Gateway in a process\"\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={li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`gateway`,children:`Gateway`}),`\n`,_jsx(Heading,{level:`2`,id:`exclusive-gateways`,children:`Exclusive Gateways`}),`\n`,_jsx(_components.p,{children:`Certain things can only be done under certain circumstances, so few processes always take the same course. In our simple example, we want to go into the details of cookery. Driven by hunger, we think about what we are going to cook today. We only know three recipes, so we choose one. We can either cook pasta or cook a steak or prepare a salad. Let’s say that these options are exclusive – we will never prepare more than one at a time. The point of decision on what to do next is called gateway. We decide based on available data (the chosen recipe) and we follow only one of the paths, which is a data-based exclusive gateway. We abbreviate “exclusive gateway” as XOR.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway1.png?fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=43776f645f5b309f434584782202f4bc`,alt:`Gateway`,\"data-og-width\":`938`,width:`938`,\"data-og-height\":`411`,height:`411`,\"data-path\":`studio/bpmn/gateway1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway1.png?w=280\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=a14b00bf5bca2c125d2348438d15fffa 280w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway1.png?w=560\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=2564b6a0b625bf3989523a6570e5d0cc 560w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway1.png?w=840\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=54d0b6bc7039432d0f73b9c0821abc48 840w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=72a9cda85235d597e1523e77b860154d 1100w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=a2a27d09ae3d811f4fd51cf3219db95e 1650w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=0bdb0e82c4d969e9a02c507697e30692 2500w`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Bear in mind that a gateway is not a task! You have to determine facts and needs before reaching a gateway.`})}),`\n`,_jsx(Heading,{level:`3`,id:`best-practice-naming-conventions`,children:`Best Practice: Naming Conventions`}),`\n`,_jsx(_components.p,{children:`As in the diagram above, we place the crucial question before the gateway. This is our convention, which has proved its value in our projects. Possible answers go on parallel paths after the gateway, which is how the BPMN specification shows them. We always work with XOR gateways as follows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Model the task that requires a decision for the XOR gateway.`}),`\n`,_jsx(_components.li,{children:`Model the XOR gateway after that.`}),`\n`,_jsx(_components.li,{children:`Create a question with mutually exclusive answers.`}),`\n`,_jsx(_components.li,{children:`Model one outgoing path (or sequence flow) for each possible answer, and label the path with the answer.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`parallel-gateways`,children:`Parallel Gateways`}),`\n`,_jsx(_components.p,{children:`Suppose that now we want a salad on the side. If you want salad no matter what, you could model it as we have done in this diagram:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway2.png?fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=07c8088fa16101e6b3032eaafd997ad9`,alt:`Parallel Gateway`,\"data-og-width\":`1195`,width:`1195`,\"data-og-height\":`339`,height:`339`,\"data-path\":`studio/bpmn/gateway2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway2.png?w=280\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=b60b3c6fdba283a328af919e0fa21479 280w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway2.png?w=560\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=dcae786087960b74ae47e387ae67f715 560w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway2.png?w=840\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=3b1e4cb07a82c54e71919afde01b0505 840w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=08419ebdf9deed0bee72cd298131fab1 1100w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=f080da5ca17f8f1e3a07c981d6e50399 1650w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=e144fccf127e46c5594c23ad489adbef 2500w`}),`\n`,_jsx(_components.p,{children:`The total of the task times equals the running time of the process, which was a total of 48 minutes for pasta and 43 minutes for steak. Congratulations: you’ve just analyzed your first process based on key data!`}),`\n`,_jsx(_components.p,{children:`Still, this means waiting 23 or even 28 minutes until you can start to eat. Insufferable! You’re really hungry, but what can you do? Maybe you don’t prepare the salad first and then cook the pasta or the steak, but you work on both at the same time – in parallel. The appropriate symbol is the parallel gateway, or the “AND gateway” for short, as shown in here:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway3.png?fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=edaf089e44909f574ed459657af8c4fb`,alt:`Parallel Gateway`,\"data-og-width\":`1171`,width:`1171`,\"data-og-height\":`565`,height:`565`,\"data-path\":`studio/bpmn/gateway3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway3.png?w=280\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=af5a5c5c16296c77ed674bcfb5db7e88 280w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway3.png?w=560\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=2885909fb3f95cc6e78ea3c5990ea4c4 560w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway3.png?w=840\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=1613e4ccdad270bb0ce1e8f8e58cd218 840w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=64ccc23dec70a978c00940a9ad1bbc5b 1100w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=aad188f31f886787597249fe9e4c0027 1650w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=a2781d64cb92cc3b7d492b0526c519a2 2500w`}),`\n`,_jsx(_components.p,{children:`Diagramming tasks as parallel does not make simultaneous processing compulsory. In contrast to the example shown before, it is also not imperative that you prepare the salad before starting other tasks. Parallel preparation does, however, reduce our total time by 10 minutes. It is classic process optimization to make tasks parallel as much as possible.`}),`\n`,_jsx(_components.p,{children:`Check yourself: What if we draw the same process, but leave the AND merge out for lack of space, and the path from the “prepare salad” task leads directly to the XOR merge. What happens if we instantiate the process, and we decide in favor of pasta?`}),`\n`,_jsx(_components.p,{children:`The token is generated and then cloned as always at the AND split. As soon as we finish preparing the salad, the token passes through the XOR merge and “eat meal” executes. Five minutes later,”cook pasta” also completes. Its token passes through the XOR merge and “eat meal” executes again! That’s not the behavior we wanted.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway4.png?fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=293815faae9125b3ef6c2a858dd1d64a`,alt:`Parallel Gateway`,\"data-og-width\":`1180`,width:`1180`,\"data-og-height\":`613`,height:`613`,\"data-path\":`studio/bpmn/gateway4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway4.png?w=280\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=2f471f62b7b486002bde1fa7d713d065 280w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway4.png?w=560\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=95a9e2f193523bfdb96bc101630ad99d 560w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway4.png?w=840\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=8139990c59e623f66665300c5ff5f233 840w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=6d958a65d50de47a088de529823ae8cd 1100w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=eead0028945075fc2b5576dd74fde70d 1650w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=c4b92f41d3b782a1a3087db32e4cfe84 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`inclusive-gateways`,children:`Inclusive Gateways`}),`\n`,_jsx(_components.p,{children:`We want to make our process even more flexible: When we are hungry, we want to eat`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Only a salad,`}),`\n`,_jsx(_components.li,{children:`A salad and “something real,” like pasta or steak, or`}),`\n`,_jsx(_components.li,{children:`Only something real.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`If you want a more compact representation, you can use the data-based inclusive gateway – the OR gateway for short:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway5.png?fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=af050aba6d100946ea79761280866238`,alt:`Inclusive Gateway`,\"data-og-width\":`1286`,width:`1286`,\"data-og-height\":`584`,height:`584`,\"data-path\":`studio/bpmn/gateway5.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway5.png?w=280\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=6142105b8a92e3e5015624355377431d 280w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway5.png?w=560\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=b2df4c340d802f07717247ba4fe9b6bc 560w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway5.png?w=840\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=00d95fef6f6a248a3f390c13269c2a9c 840w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway5.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=d44f98011722d01d03bfe1409f130c2c 1100w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway5.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=702dd05de97c87b8d3112aab86a5a77e 1650w, https://mintcdn.com/stratumn/_7ghGbILOYM4ffi0/studio/bpmn/gateway5.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_7ghGbILOYM4ffi0\u0026q=85\u0026s=876d66a8af21995e4b2e4f9c3b90c366 2500w`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`In practice, handling OR gateways is not as simple as these examples imply. It’s easy to understand that progress depends on waiting for another token to reach an OR merge. It can be harder to trace the synchronization rules with complex diagrams that sprawl across several pages.`})})]})}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":"Gateway","description":"Gateway in a process","href":"/studio/bpmn/gateway"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Gateway","slug":"gateway","depth":1,"children":[]},{"title":"Exclusive Gateways","slug":"exclusive-gateways","depth":2,"children":[{"title":"Best Practice: Naming Conventions","slug":"best-practice-naming-conventions","depth":3,"children":[]}]},{"title":"Parallel Gateways","slug":"parallel-gateways","depth":2,"children":[]},{"title":"Inclusive Gateways","slug":"inclusive-gateways","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"stratumn","siteName":"Stratumn","title":"Gateway - Stratumn","navMaps":{"firstHrefInVersion":{"v2":{"href":"/studio/bpmn/gateway","matchLevel":0},"v1":{"href":"/studio/bpmn/gateway","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-01-06T23:44:52.401Z","originalFileLocation":"studio/bpmn/gateway.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=\"dark\"}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=\"Gateway in a process\">\u003cmeta data-mint-head name=\"application-name\" content=\"Stratumn\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Gateway - Stratumn\">\u003cmeta data-mint-head property=\"og:description\" content=\"Gateway in a process\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Stratumn\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.stratumn.com/studio/bpmn/gateway\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://stratumn.mintlify.site/_mintlify/api/og/v2?division=BPMN\u0026amp;title=Gateway\u0026amp;description=Gateway+in+a+process\u0026amp;theme=4f09d40c83f861311aab72be\u0026amp;signature=f029bc63eb460aa57081ae840a0cd69682e0edefefa1dae978a0bc86f2e9e1da\">\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=\"Gateway - Stratumn\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Gateway in a process\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://stratumn.mintlify.site/_mintlify/api/og/v2?division=BPMN\u0026amp;title=Gateway\u0026amp;description=Gateway+in+a+process\u0026amp;theme=4f09d40c83f861311aab72be\u0026amp;signature=f029bc63eb460aa57081ae840a0cd69682e0edefefa1dae978a0bc86f2e9e1da\">\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=\"/mintlify-assets/_mintlify/favicons/stratumn/KR8-7fDOi5wEV22S/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Stratumn\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4B35D2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.stratumn.com/studio/bpmn/gateway\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/studio/bpmn/gateway.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.stratumn.com/#organization\",\"name\":\"Stratumn\",\"url\":\"https://docs.stratumn.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/stratumn/ZLZL0fVzWovButfa/logo/light.svg?fit=max\u0026auto=format\u0026n=ZLZL0fVzWovButfa\u0026q=85\u0026s=da95401bd6fe81b834b92c5fb0bf87e3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.stratumn.com#website\",\"name\":\"Stratumn\",\"url\":\"https://docs.stratumn.com\",\"publisher\":{\"@id\":\"https://docs.stratumn.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.stratumn.com/studio/bpmn/gateway#webpage\",\"url\":\"https://docs.stratumn.com/studio/bpmn/gateway\",\"name\":\"Gateway\",\"description\":\"Gateway in a process\",\"dateModified\":\"2026-01-06T23:44:52.401Z\",\"isPartOf\":{\"@id\":\"https://docs.stratumn.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.stratumn.com/studio/bpmn/gateway#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.stratumn.com/studio/bpmn/gateway#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Studio\",\"item\":\"https://docs.stratumn.com/studio/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"BPMN\",\"item\":\"https://docs.stratumn.com/studio/bpmn/introduction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Gateway\",\"item\":\"https://docs.stratumn.com/studio/bpmn/gateway\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.stratumn.com/studio/bpmn/gateway#article\",\"headline\":\"Gateway\",\"name\":\"Gateway\",\"description\":\"Gateway in a process\",\"url\":\"https://docs.stratumn.com/studio/bpmn/gateway\",\"mainEntityOfPage\":{\"@id\":\"https://docs.stratumn.com/studio/bpmn/gateway#webpage\"},\"dateModified\":\"2026-01-06T23:44:52.401Z\",\"publisher\":{\"@id\":\"https://docs.stratumn.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.stratumn.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Stratumn\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Stratumn\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/studio/bpmn/gateway.md","siteName":"Stratumn","nav":{"global":null,"versions":[{"version":"v2","anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/api-reference/introduction"}]},{"anchor":"API Reference","icon":"square-terminal","pages":[{"title":"API Reference","href":"/api-reference/v2/trace/create-a-new-trace"}]},{"anchor":"Studio","icon":"brush","groups":[{"group":"Studio","pages":[{"title":"Introduction","href":"/studio/introduction"},{"group":"BPMN","pages":[{"title":"Introduction to BPMN","href":"/studio/bpmn/introduction"},{"title":"Most important","href":"/studio/bpmn/resume"},{"title":null,"href":"/studio/bpmn/participants"},{"title":"Task","description":"Task in a process","href":"/studio/bpmn/task"},{"title":"Gateway","href":"/studio/bpmn/gateway"},{"title":"Event","description":"Event in a process","href":"/studio/bpmn/event"}]},{"group":"Databases","pages":[{"title":"Introduction to Databases","href":"/studio/database/introduction"},{"title":"Sheet","href":"/studio/database/sheet"},{"title":"Grid","href":"/studio/database/grid"},{"group":"Data management","pages":[{"title":"Add a row","href":"/studio/database/interactions/create"},{"title":"Delete a row","href":"/studio/database/interactions/delete"},{"title":"Modify a row","href":"/studio/database/interactions/modify"}]}]},{"group":"Generations","pages":[{"title":"Introduction to Generations","href":"/studio/generation/introduction"},{"title":"Generation details","href":"/studio/generation/details"}]},{"group":"Analytics","icon":"chart-simple","pages":[{"title":"ETL","sidebarTitle":"Introduction","iconType":"duotone","href":"/studio/analytics/introduction"},{"title":"Analytics Object","sidebarTitle":"What is an Analytics ETL in Stratumn","iconType":"duotone","href":"/studio/analytics/analytics-dto"},{"title":"Analytics page on Studio Settings","sidebarTitle":"Analytics inside workflow settings","iconType":"duotone","href":"/studio/analytics/analytics-page"}]}]}]},{"anchor":"Configuration","icon":"rocket","pages":[{"title":"Configuration","href":"/configuration/introduction"}]},{"anchor":"Errors","icon":"triangle-exclamation","pages":[{"title":"Errors","href":"/errors/trace-errors"}]}]},{"version":"v1","anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/api-reference/introduction"}]},{"anchor":"API Reference","icon":"square-terminal","pages":[{"title":"API Reference","href":"/api-reference/v1/trace/retrieve-trace-state"}]},{"anchor":"Studio","icon":"brush","groups":[{"group":"Studio","pages":[{"title":"Introduction","href":"/studio/introduction"},{"group":"BPMN","pages":[{"title":"Introduction to BPMN","href":"/studio/bpmn/introduction"},{"title":"Most important","href":"/studio/bpmn/resume"},{"title":null,"href":"/studio/bpmn/participants"},{"title":"Task","description":"Task in a process","href":"/studio/bpmn/task"},{"title":"Gateway","href":"/studio/bpmn/gateway"},{"title":"Event","description":"Event in a process","href":"/studio/bpmn/event"}]},{"group":"Databases","pages":[{"title":"Introduction to Databases","href":"/studio/database/introduction"},{"title":"Sheet","href":"/studio/database/sheet"},{"title":"Grid","href":"/studio/database/grid"},{"group":"Data management","pages":[{"title":"Add a row","href":"/studio/database/interactions/create"},{"title":"Delete a row","href":"/studio/database/interactions/delete"},{"title":"Modify a row","href":"/studio/database/interactions/modify"}]}]},{"group":"Generations","pages":[{"title":"Introduction to Generations","href":"/studio/generation/introduction"},{"title":"Generation details","href":"/studio/generation/details"}]},{"group":"Analytics","icon":"chart-simple","pages":[{"title":"ETL","sidebarTitle":"Introduction","iconType":"duotone","href":"/studio/analytics/introduction"},{"title":"Analytics Object","sidebarTitle":"What is an Analytics ETL in Stratumn","iconType":"duotone","href":"/studio/analytics/analytics-dto"},{"title":"Analytics page on Studio Settings","sidebarTitle":"Analytics inside workflow settings","iconType":"duotone","href":"/studio/analytics/analytics-page"}]}]}]},{"anchor":"Configuration","icon":"rocket","pages":[{"title":"Configuration","href":"/configuration/introduction"}]},{"anchor":"Errors","icon":"triangle-exclamation","pages":[{"title":"Errors","href":"/errors/trace-errors"}]}]}]},"basePath":"","title":"Gateway - Stratumn","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-C5F0mVLH.js","lightbox-handle-r17bVUz3.js"]}