Deployment architecture​Deployment architecture

Examples of deployment architectures, depending on your needs.

Kestra is a Java application distributed as an executable. It supports multiple deployment options:

Kestra’s plugin system allows you to choose the dependency types that best match your requirements.
Below are three common deployment architectures.

Small-sized deployment

Kestra Standalone Architecture

For small-scale deployments, you can use the Kestra standalone server, which runs all server components in a single process. This architecture has no scaling capability.

In this setup, a database is the only dependency, minimizing the stack to maintain. Supported databases include:

  • PostgreSQL
  • MySQL
  • H2

Medium-sized deployment

Kestra Architecture

For medium-scale deployments, where high availability is not required, Kestra can be run with a relational database (Postgres or MySQL) as the only dependency. H2 is not recommended in distributed setups.

  • Supported databases: PostgreSQL and MySQL
  • All server components communicate through the database

In this mode, if components are distributed across multiple hosts, you must use a shared internal storage implementation such as Google Cloud Storage, AWS S3, or Azure Blob Storage.

High-availability deployment

Kestra High Availability Architecture

For high throughput and full horizontal and vertical scaling, the database is replaced with Kafka and Elasticsearch. This architecture removes single points of failure and enables scaling of all server components.

As with medium deployments, a distributed internal storage solution is required if components run on different hosts.

Kafka

Kafka is the backbone of high availability mode, powering communication and scalability.

Kafka executor

The executor runs as a Kafka Streams application. It:

  • Processes all events from Kafka in order
  • Maintains the internal state of executions
  • Merges task run results from workers
  • Detects failed workers and resubmits their tasks

Executors scale horizontally within the limits of Kafka partitions. Since executors perform lightweight operations, they typically require minimal resources unless handling very high execution volumes.

Kafka worker

The worker runs as a Kafka consumer. It:

  • Processes tasks assigned by executors
  • Runs tasks in an internal thread pool
  • Scales horizontally, with multiple instances across servers

If a worker fails, the executor detects it and resubmits the tasks to another available worker.

Elasticsearch

Elasticsearch acts as the database for Kestra’s webserver, providing fast search, aggregation, and retrieval of flows, executions, and logs.
It is only required in high availability mode and is used exclusively by the API and UI.

Was this page helpful?