A workflow is the most central Tracecat object. It is a collection of actions that are executed in a specific order. Workflows can be triggered by a variety of events, such as a schedule or an external event.

Overview

Workflows can be thought of as a special class of functions that manage the running of actions.

Triggers

Each workflow has only one entrypoint, which is the first action to run when the workflow is triggered. A workflow with more than one entrypoint will fail at commit time.

Kinds of triggers we support:

  • Webhooks: Trigger a workflow by sending an HTTP request to a webhook URL.
  • Schedules: Trigger a workflow at a specific time or interval.

Workflow Orchestration Layer

Tracecat’s workflow orchestration layer is responsible for managing how workflows and actions get executed.

It’s built on top of Temporal, which is an open-source platform for building durable and scalable applications. It provides a fault-tolerant runtime that ensures your application workflows can reliably execute to completion, even in the face of failures, network outages, or infrastructure issues.

Tracecat’s workflow runners (worker service) are built using Temporal’s Python SDK. Temporal is responsible for distribuing workflow execution tasks to our workers.

Key Features

  • Durable Execution: Temporal preserves the entire state of your application workflows, allowing them to resume execution from the exact point they left off, even after crashes or infrastructure failures.

  • Scalability: Temporal can scale to handle high loads and a massive number of concurrent workflow executions.

  • Reliability: Workflow executions are designed to be resilient to worker process failures or cluster outages, ensuring progress can resume after any interruptions.

  • Language Agnostic: Temporal supports multiple programming languages, including Go, Java, Python, PHP, and TypeScript, enabling polyglot development.

  • Visibility and Monitoring: Temporal records every execution, its progress, and state, providing insights into errors and application performance. At the moment, Tracecat only supports the Python SDK.

Child Workflows

Workflows can trigger other workflows through a simple HTTP request. This allows you to create complex workflows by composing together simpler workflows.

We are working towards better design and implementation of child workflows. Currently child workflows don’t inherit the parent workflow’s execution context.