{"catalogRevision":"cat_f13ab9a494120b5e","nodeId":"pattern:transactional-workflows","label":"Transactional workflows","facet":"pattern","nodeType":"atom","canonicalPath":"/discover/pattern/transactional-workflows","breadcrumbs":[{"id":"discovery","label":"Agent hosting discovery","canonicalPath":"/discover/discovery","kind":"root"},{"id":"pattern","label":"Architecture and data patterns","canonicalPath":"/discover/pattern","kind":"facet"},{"id":"pattern:postgres-patterns","label":"Postgres patterns","canonicalPath":"/discover/pattern/postgres-patterns","kind":"group"},{"id":"pattern:transactional-workflows","label":"Transactional workflows","canonicalPath":"/discover/pattern/transactional-workflows","kind":"atom"}],"parents":{"items":[{"id":"pattern:postgres-patterns","label":"Postgres patterns","canonicalPath":"/discover/pattern/postgres-patterns","kind":"group"}],"total":1,"offset":0,"limit":100},"children":{"items":[],"total":0,"offset":0,"limit":50},"recipes":{"items":[{"id":"page:recipes:product-catalog:next-js:relational-catalog","label":"Host product catalog with Next.js: relational catalog data","canonicalPath":"/recipes/product-catalog/next-js/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:nuxt:relational-catalog","label":"Host product catalog with Nuxt: relational catalog data","canonicalPath":"/recipes/product-catalog/nuxt/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:sveltekit:relational-catalog","label":"Host product catalog with SvelteKit: relational catalog data","canonicalPath":"/recipes/product-catalog/sveltekit/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:django:relational-catalog","label":"Host product catalog with Django: relational catalog data","canonicalPath":"/recipes/product-catalog/django/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:laravel:relational-catalog","label":"Host product catalog with Laravel: relational catalog data","canonicalPath":"/recipes/product-catalog/laravel/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:symfony:relational-catalog","label":"Host product catalog with Symfony: relational catalog data","canonicalPath":"/recipes/product-catalog/symfony/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:rails:relational-catalog","label":"Host product catalog with Rails: relational catalog data","canonicalPath":"/recipes/product-catalog/rails/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:phoenix:relational-catalog","label":"Host product catalog with Phoenix: relational catalog data","canonicalPath":"/recipes/product-catalog/phoenix/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:asp-net-core:relational-catalog","label":"Host product catalog with ASP.NET Core: relational catalog data","canonicalPath":"/recipes/product-catalog/asp-net-core/relational-catalog","kind":"recipe"},{"id":"page:recipes:product-catalog:spring-boot:relational-catalog","label":"Host product catalog with Spring Boot: relational catalog data","canonicalPath":"/recipes/product-catalog/spring-boot/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:next-js:relational-catalog","label":"Host storefront with Next.js: relational catalog data","canonicalPath":"/recipes/storefront/next-js/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:nuxt:relational-catalog","label":"Host storefront with Nuxt: relational catalog data","canonicalPath":"/recipes/storefront/nuxt/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:sveltekit:relational-catalog","label":"Host storefront with SvelteKit: relational catalog data","canonicalPath":"/recipes/storefront/sveltekit/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:django:relational-catalog","label":"Host storefront with Django: relational catalog data","canonicalPath":"/recipes/storefront/django/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:laravel:relational-catalog","label":"Host storefront with Laravel: relational catalog data","canonicalPath":"/recipes/storefront/laravel/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:symfony:relational-catalog","label":"Host storefront with Symfony: relational catalog data","canonicalPath":"/recipes/storefront/symfony/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:rails:relational-catalog","label":"Host storefront with Rails: relational catalog data","canonicalPath":"/recipes/storefront/rails/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:phoenix:relational-catalog","label":"Host storefront with Phoenix: relational catalog data","canonicalPath":"/recipes/storefront/phoenix/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:asp-net-core:relational-catalog","label":"Host storefront with ASP.NET Core: relational catalog data","canonicalPath":"/recipes/storefront/asp-net-core/relational-catalog","kind":"recipe"},{"id":"page:recipes:storefront:spring-boot:relational-catalog","label":"Host storefront with Spring Boot: relational catalog data","canonicalPath":"/recipes/storefront/spring-boot/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:next-js:relational-catalog","label":"Host marketplace with Next.js: relational catalog data","canonicalPath":"/recipes/marketplace/next-js/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:nuxt:relational-catalog","label":"Host marketplace with Nuxt: relational catalog data","canonicalPath":"/recipes/marketplace/nuxt/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:sveltekit:relational-catalog","label":"Host marketplace with SvelteKit: relational catalog data","canonicalPath":"/recipes/marketplace/sveltekit/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:django:relational-catalog","label":"Host marketplace with Django: relational catalog data","canonicalPath":"/recipes/marketplace/django/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:laravel:relational-catalog","label":"Host marketplace with Laravel: relational catalog data","canonicalPath":"/recipes/marketplace/laravel/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:symfony:relational-catalog","label":"Host marketplace with Symfony: relational catalog data","canonicalPath":"/recipes/marketplace/symfony/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:rails:relational-catalog","label":"Host marketplace with Rails: relational catalog data","canonicalPath":"/recipes/marketplace/rails/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:phoenix:relational-catalog","label":"Host marketplace with Phoenix: relational catalog data","canonicalPath":"/recipes/marketplace/phoenix/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:asp-net-core:relational-catalog","label":"Host marketplace with ASP.NET Core: relational catalog data","canonicalPath":"/recipes/marketplace/asp-net-core/relational-catalog","kind":"recipe"},{"id":"page:recipes:marketplace:spring-boot:relational-catalog","label":"Host marketplace with Spring Boot: relational catalog data","canonicalPath":"/recipes/marketplace/spring-boot/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:next-js:relational-catalog","label":"Host digital downloads with Next.js: relational catalog data","canonicalPath":"/recipes/digital-downloads/next-js/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:nuxt:relational-catalog","label":"Host digital downloads with Nuxt: relational catalog data","canonicalPath":"/recipes/digital-downloads/nuxt/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:sveltekit:relational-catalog","label":"Host digital downloads with SvelteKit: relational catalog data","canonicalPath":"/recipes/digital-downloads/sveltekit/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:django:relational-catalog","label":"Host digital downloads with Django: relational catalog data","canonicalPath":"/recipes/digital-downloads/django/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:laravel:relational-catalog","label":"Host digital downloads with Laravel: relational catalog data","canonicalPath":"/recipes/digital-downloads/laravel/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:symfony:relational-catalog","label":"Host digital downloads with Symfony: relational catalog data","canonicalPath":"/recipes/digital-downloads/symfony/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:rails:relational-catalog","label":"Host digital downloads with Rails: relational catalog data","canonicalPath":"/recipes/digital-downloads/rails/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:phoenix:relational-catalog","label":"Host digital downloads with Phoenix: relational catalog data","canonicalPath":"/recipes/digital-downloads/phoenix/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:asp-net-core:relational-catalog","label":"Host digital downloads with ASP.NET Core: relational catalog data","canonicalPath":"/recipes/digital-downloads/asp-net-core/relational-catalog","kind":"recipe"},{"id":"page:recipes:digital-downloads:spring-boot:relational-catalog","label":"Host digital downloads with Spring Boot: relational catalog data","canonicalPath":"/recipes/digital-downloads/spring-boot/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:next-js:relational-catalog","label":"Host subscription content with Next.js: relational catalog data","canonicalPath":"/recipes/subscription-content/next-js/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:nuxt:relational-catalog","label":"Host subscription content with Nuxt: relational catalog data","canonicalPath":"/recipes/subscription-content/nuxt/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:sveltekit:relational-catalog","label":"Host subscription content with SvelteKit: relational catalog data","canonicalPath":"/recipes/subscription-content/sveltekit/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:django:relational-catalog","label":"Host subscription content with Django: relational catalog data","canonicalPath":"/recipes/subscription-content/django/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:laravel:relational-catalog","label":"Host subscription content with Laravel: relational catalog data","canonicalPath":"/recipes/subscription-content/laravel/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:symfony:relational-catalog","label":"Host subscription content with Symfony: relational catalog data","canonicalPath":"/recipes/subscription-content/symfony/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:rails:relational-catalog","label":"Host subscription content with Rails: relational catalog data","canonicalPath":"/recipes/subscription-content/rails/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:phoenix:relational-catalog","label":"Host subscription content with Phoenix: relational catalog data","canonicalPath":"/recipes/subscription-content/phoenix/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:asp-net-core:relational-catalog","label":"Host subscription content with ASP.NET Core: relational catalog data","canonicalPath":"/recipes/subscription-content/asp-net-core/relational-catalog","kind":"recipe"},{"id":"page:recipes:subscription-content:spring-boot:relational-catalog","label":"Host subscription content with Spring Boot: relational catalog data","canonicalPath":"/recipes/subscription-content/spring-boot/relational-catalog","kind":"recipe"}],"total":212,"offset":0,"limit":50},"related":[],"requiredBy":{"items":[],"total":0,"offset":0,"limit":50},"publishedRecipeCount":212,"scopeNote":"Architecture pattern to validate. Application code or external services may be needed; not a claimed managed feature.","nextActions":[{"actionId":"browse-catalog","label":"Browse the catalog index","operationId":"catalog_index","method":"GET","relativePath":"/v1/catalog","origin":"api","parameters":{},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"search-recipes","label":"Search published recipes by intent, stack and constraints","operationId":"search_recipes","method":"POST","relativePath":"/v1/catalog/search","origin":"api","parameters":{"body":{"limit":5,"query":"Transactional workflows"}},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:product-catalog:next-js:relational-catalog","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Aproduct-catalog%3Anext-js%3Arelational-catalog","origin":"api","parameters":{"recipeId":"page:recipes:product-catalog:next-js:relational-catalog"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:product-catalog:nuxt:relational-catalog","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Aproduct-catalog%3Anuxt%3Arelational-catalog","origin":"api","parameters":{"recipeId":"page:recipes:product-catalog:nuxt:relational-catalog"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:product-catalog:sveltekit:relational-catalog","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Aproduct-catalog%3Asveltekit%3Arelational-catalog","origin":"api","parameters":{"recipeId":"page:recipes:product-catalog:sveltekit:relational-catalog"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:product-catalog:django:relational-catalog","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Aproduct-catalog%3Adjango%3Arelational-catalog","origin":"api","parameters":{"recipeId":"page:recipes:product-catalog:django:relational-catalog"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:product-catalog:laravel:relational-catalog","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Aproduct-catalog%3Alaravel%3Arelational-catalog","origin":"api","parameters":{"recipeId":"page:recipes:product-catalog:laravel:relational-catalog"},"requiresAuthentication":false,"requiresApproval":false}]}