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:

  1. CloudEvents. Ideal for an Event-Driven architecture where the services are ready to consume and produce events working in a more reactive way.

  2. Sync or Async REST services invocations via OpenAPI/AsyncAPI. 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.

  3. 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.

Setup

Learn about the recommended environment to start your journey with SonataFlow applications

An all-in-one guide to prepare your environment for you to uncover the full potential of SonataFlow guides on your local environment.

Learn about the best practices and recommendations for production environments.

Getting started

Learn about the tools we provide you with, on your journey to create SonataFlow applications

An all-in-one starting guide. Learn how to create, run & deploy your first SonataFlow project on your local environment.

Learn about how to execute your workflows (existing files or define them programmatically) using Java and Maven.

Core Concepts

Learn about the CNCF Serverless Workflow Specification implementation

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 create jq expressions to manipulate data within a workflow execution

Learn how to handle errors in your workflow application

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 about the custom functions supported by Serverless Workflow

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 use the OpenAPI Callback in your workflow application

Event Orchestration

Learn how to trigger and consume events using AsyncAPI specification descriptors

Learn how to configure event correlation 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

Executing, 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

Persistence

Learn about the core concepts of persistence inf SonataFlow

Cloud

Learn about the options to deploy workflow applications in Kubernetes

Integrations

Learn how to handle integrations of external services in SonataFlow application

Job Service

Details about Job Service to control timers 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.

Use Cases

Collection of guides showcasing core concepts of SonataFlow or providing a solution to specific problem in our domain.

In the Advanced Developer Use Cases section, you can find guides that use Java and Quarkus to create SonataFlow applications. These guides allow users to vastly customize their applications depending on their use case. Good understanding and knowledge of these technologies is expected.

Advanced Developer Use Cases

Learn how to develop & customize SonataFlow applications with Quarkus