SonataFlow Guides
SonataFlow is a tool for building cloud-native workflow applications. You can use it to do the services and events orchestration and choreography. Currently, with SonataFlow you can integrate with services and events in your architecture using:
-
CloudEvents. Ideal for an Event-Driven architecture where the services are ready to consume and produce events working in a more reactive way.
-
Sync or Async REST services invocations via OpenAPI/Async API. There are options even to directly call a REST service in the architecture or ecosystem. Either async or sync methods are supported depending on your requirements.
-
Internal Service execution or invocation. SonataFlow is also a workflow framework to build applications. You can use it to create custom services in the same thread to run a lightweight workflow-based application within the same instance.
You can learn how to create, manage, and deploy your workflow applications with the following guides.
Getting started
Learn how to create your first Serverless Workflow project
Learn how to create & run your first {Kogito Serverless Workflow} project.
Core Concepts
Learn about the CNCF Serverless Workflow Specification implementation
Learn which tools you can use to author your workflow assets
Core
Learn about the custom functions supported by Serverless Workflow
Learn how to create jq expressions to manipulate data within a workflow execution
Learn how to handle errors in your workflow application
Working with parallelism in your workflow service
Quick reference of configuration properties in workflow
Learn about the input schema definition used to validate the workflow data input against a defined JSON Schema
Learn how to configure timeouts in the workflow
Working with parallelism in your workflow project
Tooling
Learn how to install and use the Serverless Workflow editor
Learn how to install and use the VS Code extension for Serverless Workflow editor for creating workflows.
Learn how to use Serverless Logic Web Tools for creating and managing workflows, decisions, and dashboards.
Learn how to install and use the Chrome extension for Serverless Workflow editor to view and edit workflows directly in Github.
Service Orchestration
Learn how to orchestrate REST services using OpenAPI specification descriptors
Learn how to trigger and consume events using AsyncAPI specification descriptors
Learn how to configure OpenAPI services endpoints in different environments
Learn about orchestrating gRPC services
Eventing
Learn how to use the Event state in your workflow application
Learn how to use the Callback state in your workflow application
Learn how to configure your Serverless Workflow application to produce and consume events using Apache Kafka
Learn how to configure your Serverless Workflow application to produce and consume events on Knative Eventing
Learn how to configure event correlation in your workflow application
Learn how to use the OpenAPI Callback in your workflow application
Security
Learn how to use authentication methods when calling REST services using OpenAPI specification
Learn about the OAuth2 method support when orchestrating REST services using your workflow application
Testing and Troubleshooting
Learn how to use the Serverless Workflow extension in Quarkus Dev UI
Learn how to install the SonataFlow plug-in for Knative CLI
Learn how to add unit tests in your workflow application using RestAssured
Learn how to integrate tests on workflow applications that use PostgreSQL as a persistence storage
Learn how to mock external REST requests when testing your Serverless Workflow applications
Testing Serverless Workflow application that uses HTTP CloudEvents and Knative Sink Binding
Persistence
Running Serverless Workflow service using PostgresSQL
Migrating your existing PostgreSQL Database with changes from the Kogito upgrade using Flyway
Cloud
Learn about the options to deploy workflow applications in Kubernetes
Learn how and when to use the SAGA pattern in your workflow projects
Learn how and when to use timeout in your workflow projects
Integrations
Learn how to use Camel Routes within your workflow application
Learn how to invoke Knative services from SonataFlow custom functions
Learn how to use dashboards to display the runtime data of your workflow application
Exposing the workflow base metrics to Prometheus
Supporting Services
Details about Job Service to control timers in SonataFlow
Details about how to configure you Quarkus Workflow Project to interact with the Job Service in SonataFlow
Data Index service
Learn Data Index core concepts, allowing to understand the purpose and the different deployment options that are provided.
Go deeper in details about Data Index as standalone service deployment.
Explore Data Index as Quarkus extension in SonataFlow