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’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’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’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’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]