This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-docs.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new 58754648d deploy: 0bdddb92009cdce3a02178b4cc108ec43214d693
58754648d is described below

commit 58754648da04c7aa69b48e28de550d767d67c227
Author: ricardozanini <[email protected]>
AuthorDate: Mon Mar 11 14:18:49 2024 +0000

    deploy: 0bdddb92009cdce3a02178b4cc108ec43214d693
---
 serverlessworkflow/main/cloud/index.html           |  10 +
 .../main/cloud/operator/using-persistence.html     | 829 +++++++++++++++++++++
 2 files changed, 839 insertions(+)

diff --git a/serverlessworkflow/main/cloud/index.html 
b/serverlessworkflow/main/cloud/index.html
index 20ae69d9f..f41606483 100644
--- a/serverlessworkflow/main/cloud/index.html
+++ b/serverlessworkflow/main/cloud/index.html
@@ -794,6 +794,16 @@
 <div class="openblock card">
 <div class="content">
 <div class="paragraph card-title">
+<p><a href="operator/using-persistence.html" class="xref page">Using 
persistence in the SonataFlow Workflow CR</a></p>
+</div>
+<div class="paragraph card-description">
+<p>Learn how to define the workflow <code>Persistence</code> field to allow 
the workflow to store its context</p>
+</div>
+</div>
+</div>
+<div class="openblock card">
+<div class="content">
+<div class="paragraph card-title">
 <p><a href="operator/known-issues.html" class="xref page">SonataFlow Operator 
Known Issues, Limitations and Roadmap</a></p>
 </div>
 <div class="paragraph card-description">
diff --git a/serverlessworkflow/main/cloud/operator/using-persistence.html 
b/serverlessworkflow/main/cloud/operator/using-persistence.html
new file mode 100644
index 000000000..cac6abf15
--- /dev/null
+++ b/serverlessworkflow/main/cloud/operator/using-persistence.html
@@ -0,0 +1,829 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Using persistence in the SonataFlow Workflow CR :: SonataFlow 
Guides</title>
+    <meta name="description" content="Using persistence in the workflow 
instance to store its context">
+    <meta name="keywords" content="sonataflow, workflow, serverless, operator, 
kubernetes, persistence">
+    <meta name="generator" content="Antora 3.1.4">
+    <link rel="stylesheet" href="../../../../_/css/site.css">
+<link rel="icon" href="../../../../_/img/favicon.ico" type="image/x-icon">
+
+<link rel="stylesheet" href="../../../../_/css/search.css">
+<link rel="stylesheet" href="../../../../_/css/menu.css">
+<link rel="stylesheet" href="../../../../_/css/tabs.css">
+<link rel="stylesheet" href="../../../../_/css/navbar.css">
+<link rel="stylesheet" href="../../../../_/css/custom.css">
+<link rel="stylesheet" href="../../../../_/css/home.css"><script>var 
uiRootPath = '../../../../_'</script>
+  </head>
+  <body class="article">
+<header class="header">
+    <nav class="navbar">
+        <div class="navbar-brand">
+            <div class="navbar-item">
+                <a href="../../../..">
+                    <img src="../../../../_/img/kogitoLogo_default_64px.png" 
height="50px" alt="Kogito logo"/>
+                </a>
+                <a class="navbar-item" href="../../../..">
+                    SonataFlow Guides
+                </a>
+            </div>
+                <div class="navbar-item search hide-for-print">
+                    <div id="search-field" class="field">
+                        <input id="search-input" type="text" 
placeholder="Search docs">
+                    </div>
+                </div>
+            <button class="navbar-burger" data-target="topbar-nav">
+                <span></span>
+                <span></span>
+                <span></span>
+            </button>
+        </div>
+        <div id="topbar-nav" class="navbar-menu">
+            <div class="navbar-end">
+                <div class="navbar-item">
+                    <a class="navbar-item small-item" 
href="https://github.com/apache";
+                       target="_blank" title="Follow KIE on GitHub">
+                        <div class="github-icon"></div>
+                    </a>
+                </div>
+            </div>
+        </div>
+    </nav>
+</header>
+<div class="body">
+<div class="nav-container" data-component="serverlessworkflow" 
data-version="main">
+  <aside class="nav">
+    <div class="panels">
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    <h3 class="title"><a href="../../index.html">SonataFlow Guides</a></h3>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="0">
+<ul class="nav-list">
+  <li class="nav-item" data-depth="1">
+    <a class="nav-link" href="../../release_notes.html">Release notes</a>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Getting Started</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../getting-started/getting-familiar-with-our-tooling.html">Getting 
familiar with SonataFlow tooling</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../getting-started/create-your-first-workflow-service-with-kn-cli-and-vscode.html">Creating
 and running workflow projects using KN CLI and Visual Studio Code</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Core Concepts</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../core/cncf-serverless-workflow-specification-support.html">Serverless
 Workflow Specification</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../core/handling-events-on-workflows.html">Events</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../core/working-with-callbacks.html">Callbacks</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="../../core/understanding-jq-expressions.html">jq 
Expressions</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../core/understanding-workflow-error-handling.html">Error handling</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../core/configuration-properties.html">Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../core/defining-an-input-schema-for-workflows.html">Input Schema</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="../../core/custom-functions-support.html">Custom 
Functions</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="../../core/timeouts-support.html">Timeouts</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../core/working-with-parallelism.html">Parallelism</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Tooling</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../tooling/serverless-workflow-editor/swf-editor-overview.html">Editor</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../tooling/serverless-workflow-editor/swf-editor-vscode-extension.html">VS
 Code extension</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../tooling/serverless-workflow-editor/swf-editor-chrome-extension.html">Chrome
 extension for GitHub</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" 
href="../../tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html">Serverless
 Logic Web Tools</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html">Integration
 with GitHub</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html">Integration
 with OpenShift</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html">Integration
 with Service Registries</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html">Deployment</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Service Orchestration</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" 
href="../../service-orchestration/orchestration-of-openapi-based-services.html">OpenAPI</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../service-orchestration/configuring-openapi-services-endpoints.html">Advanced
 Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../service-orchestration/working-with-openapi-callbacks.html">Callbacks</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../service-orchestration/troubleshooting.html">Troubleshooting</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Event Orchestration</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../eventing/orchestration-of-asyncapi-based-services.html">AsyncAPI</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../eventing/event-correlation-with-workflows.html">Event 
Correlation</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Security</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Client Authentication</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../security/authention-support-for-openapi-services.html">OpenAPI 
Authentication</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../security/orchestrating-third-party-services-with-oauth2.html">OpenAPI
 OAuth2</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Executing, Testing and Troubleshooting</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Executing and Testing Workflows</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" 
href="../../testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html">Developer
 UI</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html">Workflow
 Instances</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html">Workflow
 Definitions</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html">Monitoring</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html">Dashboards</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../testing-and-troubleshooting/kn-plugin-workflow-overview.html">Command
 Line</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Persistence</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="../../persistence/core-concepts.html">Core 
concepts</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="../index.html">Cloud</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Operator</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="install-serverless-operator.html">Installation</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="developing-workflows.html">Development Mode</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="referencing-resource-files.html">Referencing 
Workflow Resources</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="configuring-workflows.html">Configuration</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="build-and-deploy-workflows.html">Building and 
Deploying Workflow Images</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="supporting-services.html">Deploy Supporting 
Services</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="workflow-status-conditions.html">Custom Resource 
Status</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="building-custom-images.html">Building Custom 
Images</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="customize-podspec.html">Custom Workflow 
PodSpec</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="service-discovery.html">Service Discovery</a>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="known-issues.html">Roadmap and Known Issues</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Integrations</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../integrations/core-concepts.html">Introduction</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Job Service</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" href="../../job-services/core-concepts.html">Core 
Concepts</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Data Index</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../data-index/data-index-core-concepts.html">Core concepts</a>
+  </li>
+  <li class="nav-item" data-depth="2">
+    <a class="nav-link" 
href="../../data-index/data-index-service.html">Standalone service</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" href="../../migration-guide/index.html">Migration 
Guide</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Operator</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" 
href="../../migration-guide/operator/to-1.43.0-migration-guide.html">Migrating 
SonataFlow operator to 1.43.0</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="1">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Use Cases</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="2">
+    <button class="nav-item-toggle"></button>
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/index.html">Advanced 
Development Use Cases of SonataFlow applications using Quarkus and Java</a>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Getting started</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/getting-started/create-your-first-workflow-service.html">Creating
 a Quarkus Workflow Project</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/getting-started/build-workflow-image-with-quarkus-cli.html">Building
 workflow images using Quarkus CLI</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/getting-started/working-with-serverless-workflow-quarkus-examples.html">Working
 with SonataFlow example application using Quarkus CLI</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/getting-started/test-serverless-workflow-quarkus-examples.html">Testing
 images of SonataFlow example applications using Quarkus CLI</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Deployment</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/deployments/deploying-on-minikube.html">Deploying
 on Minikube</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/deployments/deploying-on-kubernetes.html">Deploying
 on Kubernetes</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.html">Deploying
 on OpenShift</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Persistence</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/persistence/persistence-core-concepts.html">Core
 Concepts</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/persistence/persistence-with-postgresql.html">Running
 a Quarkus Workflow Application using PostgreSQL</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/persistence/postgresql-advanced-concepts.html">Postgresql
 Advanced Concepts</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/persistence/postgresql-flyway-migration.html">PostgreSQL
 Database Migration</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/persistence/integration-tests-with-postgresql.html">SonataFlow
 integration test using PostgreSQL</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Job Service</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/job-service/quarkus-extensions.html">Job
 Service Quarkus Extensions</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Data Index</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/data-index/data-index-as-quarkus-dev-service.html">Data
 Index as a Quarkus Development service</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/data-index/data-index-usecase-singleton.html">Deploying
 Data Index and SonataFlow application on Minikube</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/data-index/data-index-usecase-multi.html">Deploying
 Data Index and multiple SonataFlow applications on Minikube</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/data-index/data-index-quarkus-extension.html">Data
 Index Quarkus extensions</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Service Orchestration</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/service-orchestration/configuring-openapi-services-endpoints-with-quarkus.html">Configuring
 the OpenAPI services endpoints in different environments</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/service-orchestration/orchestration-of-grpc-services.html">Orchestrating
 gRPC based Services</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Service Discovery</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/service-discovery/kubernetes-service-discovery.html">Service
 Discovery</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Event Orchestration</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/event-orchestration/consume-produce-events-with-knative-eventing.html">Consuming
 and producing events on Knative Eventing in Quarkus</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/event-orchestration/consume-producing-events-with-kafka.html">Consuming
 and producing events using Apache Kafka in Quarkus</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/event-orchestration/orchestration-based-saga-pattern.html">Saga
 orchestration example in SonataFlow</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/event-orchestration/newsletter-subscription-example.html">Newsletter
 subscription example in SonataFlow</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Timeouts</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/timeouts/timeout-showcase-example.html">Timeouts
 Showcase in SonataFlow</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Callbacks</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/callbacks/callback-state-example.html">Example
 of SonataFlow application using callback state with Quarkus</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Integrations of external services</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/integrations/camel-routes-integration.html">Integrating
 with Camel routes</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/integrations/custom-functions-knative.html">Invoking
 Knative services from SonataFlow</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/integrations/expose-metrics-to-prometheus.html">Exposing
 Workflow base metrics to Prometheus</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/integrations/serverless-dashboard-with-runtime-data.html">Displaying
 Workflow Data in Dashboards</a>
+  </li>
+</ul>
+  </li>
+  <li class="nav-item" data-depth="3">
+    <button class="nav-item-toggle"></button>
+    <span class="nav-text">Testing</span>
+<ul class="nav-list">
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/testing/basic-integration-tests-with-restassured.html">Testing
 your Quarkus Workflow Application using REST Assured</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/testing/mocking-http-cloudevents-with-wiremock.html">Mocking
 HTTP CloudEvents sink using WireMock</a>
+  </li>
+  <li class="nav-item" data-depth="4">
+    <a class="nav-link" 
href="../../use-cases/advanced-developer-use-cases/testing/mocking-openapi-services-with-wiremock.html">Mocking
 OpenAPI services using WireMock</a>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </li>
+</ul>
+  </nav>
+</div>
+<div class="nav-panel-explore" data-panel="explore">
+  <div class="context">
+    <span class="title">SonataFlow Guides</span>
+    <span class="version">snapshot</span>
+  </div>
+  <ul class="components">
+    <li class="component is-current">
+      <a class="title" href="../../../latest/index.html">SonataFlow Guides</a>
+      <ul class="versions">
+        <li class="version is-current">
+          <a href="../../index.html">snapshot</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.45.0-SNAPSHOT/index.html">1.45-RC</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.44.0-SNAPSHOT/index.html">1.44-RC</a>
+        </li>
+        <li class="version is-latest">
+          <a href="../../../latest/index.html">1.43</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.42.0.Final/index.html">1.42</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.41.0.Final/index.html">1.41</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.40.0.Final/index.html">1.40</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.39.0.Final/index.html">1.39</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.38.0.Final/index.html">1.38</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.37.0.Final/index.html">1.37</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.36.1.Final/index.html">1.36</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.35.0.Final/index.html">1.35</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.34.0.Final/index.html">1.34</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.33.0.Final/index.html">1.33</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.32.0.Final/index.html">1.32</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.31.1.Final/index.html">1.31</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.30.0.Final/index.html">1.30</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.29.0.Final/index.html">1.29</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.28.0.Final/index.html">1.28</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.27.0.Final/index.html">1.27</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.26.0.Final/index.html">1.26</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.25.0.Final/index.html">1.25</a>
+        </li>
+        <li class="version">
+          <a href="../../../1.24.1.Final/index.html">1.24</a>
+        </li>
+      </ul>
+    </li>
+  </ul>
+</div>
+    </div>
+  </aside>
+</div>
+<main class="article">
+<div class="toolbar" role="navigation">
+<button class="nav-toggle"></button>
+  <a href="../../../latest/index.html" class="home-link"></a>
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  <ul>
+    <li><a href="../../index.html">SonataFlow Guides</a></li>
+    <li><a href="using-persistence.html">Using persistence in the SonataFlow 
Workflow CR</a></li>
+  </ul>
+</nav>
+<div class="page-versions">
+  <button class="version-menu-toggle" title="Show other versions of 
page">snapshot</button>
+  <div class="version-menu">
+    <a class="version is-current" href="using-persistence.html">snapshot</a>
+    <a class="version is-missing" 
href="../../../1.45.0-SNAPSHOT/index.html">1.45-RC</a>
+    <a class="version is-missing" 
href="../../../1.44.0-SNAPSHOT/index.html">1.44-RC</a>
+    <a class="version is-missing" href="../../../latest/index.html">1.43</a>
+    <a class="version is-missing" 
href="../../../1.42.0.Final/index.html">1.42</a>
+    <a class="version is-missing" 
href="../../../1.41.0.Final/index.html">1.41</a>
+    <a class="version is-missing" 
href="../../../1.40.0.Final/index.html">1.40</a>
+    <a class="version is-missing" 
href="../../../1.39.0.Final/index.html">1.39</a>
+    <a class="version is-missing" 
href="../../../1.38.0.Final/index.html">1.38</a>
+    <a class="version is-missing" 
href="../../../1.37.0.Final/index.html">1.37</a>
+    <a class="version is-missing" 
href="../../../1.36.1.Final/index.html">1.36</a>
+    <a class="version is-missing" 
href="../../../1.35.0.Final/index.html">1.35</a>
+    <a class="version is-missing" 
href="../../../1.34.0.Final/index.html">1.34</a>
+    <a class="version is-missing" 
href="../../../1.33.0.Final/index.html">1.33</a>
+    <a class="version is-missing" 
href="../../../1.32.0.Final/index.html">1.32</a>
+    <a class="version is-missing" 
href="../../../1.31.1.Final/index.html">1.31</a>
+    <a class="version is-missing" 
href="../../../1.30.0.Final/index.html">1.30</a>
+    <a class="version is-missing" 
href="../../../1.29.0.Final/index.html">1.29</a>
+    <a class="version is-missing" 
href="../../../1.28.0.Final/index.html">1.28</a>
+    <a class="version is-missing" 
href="../../../1.27.0.Final/index.html">1.27</a>
+    <a class="version is-missing" 
href="../../../1.26.0.Final/index.html">1.26</a>
+    <a class="version is-missing" 
href="../../../1.25.0.Final/index.html">1.25</a>
+    <a class="version is-missing" 
href="../../../1.24.1.Final/index.html">1.24</a>
+  </div>
+</div>
+  <div class="edit-this-page"><a 
href="https://github.com/apache/incubator-kie-kogito-docs/edit/main/serverlessworkflow/modules/ROOT/pages/cloud/operator/using-persistence.adoc";>Edit
 this Page</a></div>
+  </div>
+  <div class="content">
+<aside class="toc sidebar" data-title="Contents" data-levels="2">
+  <div class="toc-menu"></div>
+</aside>
+<article class="doc">
+<h1 class="page">Using persistence in the SonataFlow Workflow CR</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>This document describes how to configure a SonataFlow instance to use 
persistence to store the flow&#8217;s context in a relational database.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuring_the_sonataflow_cr_to_use_persistence"><a class="anchor" 
href="#_configuring_the_sonataflow_cr_to_use_persistence"></a>Configuring the 
SonataFlow CR to use persistence</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Kubernetes&#8217;s pods are stateless by definition. In some scenarios, 
this can be a challenge for workloads that require maintaining the status of
+the application regardless of the pod&#8217;s lifecycle. In the case of 
SonataFlow, the context of the workflow is lost when the pod restarts.
+If your workflow requires recovery from such scenarios, you must to make these 
additions to your workflow CR:
+Use the <code>persistence</code> field in the <code>SonataFlow</code> workflow 
spec to define the database service located in the same cluster.
+There are 2 ways to accomplish this:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Using the Platform CR&#8217;s defined persistence
+When the Platform CR is deployed with its persistence spec populated it 
enables workflows to leverage its configuration to populate the persistence
+properties in the workflows.</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-yaml hljs" 
data-lang="yaml">---
+apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlowPlatform
+metadata:
+  name: sonataflow-platform
+spec:
+  persistence:
+    postgresql:
+      secretRef:
+        name: postgres-secrets
+        userKey: POSTGRES_USER
+        passwordKey: POSTGRES_PASSWORD
+      serviceRef:
+        name: postgres
+        port: 5432
+        databaseName: sonataflow
+        databaseSchema: shared
+  build:
+    config:
+      strategyOptions:
+        KanikoBuildCacheEnabled: "true"
+---</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The values of <code>POSTGRES_USER</code> and <code>POSTGRES_PASSWORD</code> 
are the keys in the [Kubernetes secret](<a 
href="https://kubernetes.io/docs/concepts/configuration/secret/"; 
class="bare">https://kubernetes.io/docs/concepts/configuration/secret/</a>) 
that contains the credentials to connect to the postgreSQL instance.
+The SonataFlow Workflow CR
+is defined with its <code>Persistence</code> field defined as empty.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-yaml hljs" 
data-lang="yaml">apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlow
+metadata:
+  name: callbackstatetimeouts
+  annotations:
+    sonataflow.org/description: Callback State Timeouts Example k8s
+    sonataflow.org/version: 0.0.1
+spec:
+  persistence: {}
+  ...
+---</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This configuration signals the operator that the workflow requires 
persistence and that it expects its configuration to be populated accordingly.
+The operator will add the relevant JDBC properties in the 
<code>application.properties</code>
+generated and as part of the pod´s environment so that it can connect to the 
persistence service defined in the <code>Platform</code> CR.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Currently, PostgreSQL is the only persistence supported.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Using the custom defined persistence in the <code>SonataFlow</code> CR</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Alternatively, you can define a dedicated configuration in the 
<code>SonataFlow</code> CR instance using the same schema format found in the 
Platform CRD:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-yaml hljs" 
data-lang="yaml">apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlow
+metadata:
+  name: callbackstatetimeouts
+  annotations:
+    sonataflow.org/description: Callback State Timeouts
+    sonataflow.org/version: 0.0.1
+spec:
+  persistence:
+    postgresql:
+      secretRef:
+        name: postgres-secrets
+        userKey: POSTGRES_USER
+        passwordKey: POSTGRES_PASSWORD
+      serviceRef:
+        name: postgres
+        port: 5432
+        databaseName: sonataflow
+        databaseSchema: callbackstatetimeouts
+  ...
+---</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Like in the Platform CR case, the values of the <code>POSTGRES_USER</code> 
and <code>POSTGRES_PASSWORD</code> are the secret keys in the secret that 
contain the credentials to connect to
+the PostgreSQL instace.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_conclusion"><a class="anchor" href="#_conclusion"></a>Conclusion</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can enable SQL persistence in your workflows by configuring each 
<code>SonataFlow</code> CR instance. And when the 
<code>SonataFlowPlatform</code> CR contains the persistence field configured,
+the operator uses this information to configure those <code>SonataFlow</code> 
CRs that request persistence. When both the <code>Platform CR</code> and the 
<code>SonataFlow CR</code> contain persistence
+configuration, the operator will use the <code>Persistence</code> values from 
the <code>SonataFlow</code> CR.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_additional_resources"><a class="anchor" 
href="#_additional_resources"></a>Additional resources</h2>
+<div class="sectionbody">
+<div class="ulist">
+<ul>
+<li>
+<p><a href="developing-workflows.html" class="xref page">Developing Workflows 
with the Operator</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_found_an_issue"><a class="anchor" 
href="#_found_an_issue"></a><em><strong>Found an issue?</strong></em></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>If you find an issue or any misleading information, please feel free to 
report it <a 
href="https://github.com/apache/incubator-kie-kogito-docs/issues/new";>here</a>.
+We really appreciate it!</p>
+</div>
+</div>
+</div>
+</article>
+  </div>
+</main>
+</div>
+<footer class="footer">
+  <p>This page was built using the Antora default UI.</p>
+  <p>The source code for this UI is licensed under the terms of the MPL-2.0 
license.</p>
+</footer>
+<script src="../../../../_/js/site.js"></script>
+<script async src="../../../../_/js/vendor/highlight.js"></script>
+<script src="../../../../_/js/tabsBehavior.js"></script>
+<script src="../../../../_/js/vendor/lunr.js"></script>
+<script src="../../../../_/js/search-ui.js" id="search-ui-script" 
data-site-root-path="../../../.." data-snippet-length="100" 
data-stylesheet="../../../../_/css/search.css"></script>
+<script async src="../../../../search-index.js"></script>
+  </body>
+</html>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to