Prerequisites: software and hardware requirements before deploying Kestra

For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append .md to any kestra.io/docs/* URL for plain Markdown.

This page outlines the software and hardware requirements for running Kestra.

Software requirements

The table below lists the software requirements for Kestra.

Java Runtime

Kestra EditionRequired versionNote
Open Source / EnterpriseRuntime JDK 25; source/target 21Default: Java 25 (Eclipse Temurin); compiled with --release 21

Queue and Repository

Kestra Open Source supports PostgreSQL or MySQL for the queue and repository components.

Kestra Enterprise Edition (EE) provides two options:

  • Use the same JDBC configuration as Open Source for standard deployments
  • Use Kafka with Elasticsearch or OpenSearch for large-scale deployments
Kestra EditionDatabaseRequired versionNote
OSS / EnterprisePostgreSQL>=14Default latest
OSS / EnterpriseMySQL>= 8 (except version 8.0.31)Default: 8.3.2
EnterpriseApache Kafka>=3
EnterpriseElasticsearch>=7
EnterpriseOpensearch>=2

MySQL settings

MySQL deployments need two settings that MySQL does not apply by default.

Transaction isolation level. Kestra requires the READ COMMITTED transaction isolation level. MySQL defaults to REPEATABLE READ, which can cause deadlocks in Kestra’s JDBC queue. When a connection uses a different level, Kestra raises IllegalStateException: Isolation level must be READ COMMITTED.

Set the level on the MySQL server in your option file (my.cnf), then restart MySQL:

[mysqld]
transaction_isolation=READ-COMMITTED

On a managed service such as Amazon RDS or Cloud SQL, set the transaction_isolation parameter in the parameter group or database flags instead.

If you cannot change the server configuration, set the level for Kestra’s connections in the datasource configuration:

datasources:
mysql:
url: jdbc:mysql://localhost:3306/kestra
driver-class-name: com.mysql.cj.jdbc.Driver
username: kestra
password: k3str4
dialect: MYSQL
transaction-isolation: TRANSACTION_READ_COMMITTED

Time zone tables. Load the MySQL time zone tables. If the time zone data is missing, the scheduler can misfire or skip runs. Follow the MySQL guide to load the time zone tables.

Internal Storage

Kestra EditionStorage ProviderRequired versionNote
OSS/EnterpriseGoogle Cloud GCSN/A
OSS/EnterpriseAWS S3N/A
OSS/EnterpriseAzure Blob StorageN/A
OSS/EnterpriseS3-compatibleN/AUse the minio storage type

Hardware requirements

A Kestra standalone server requires at least 4 GiB of memory and 2 vCPUs. To use script tasks, the server must support Docker-in-Docker (this is why, for example, AWS ECS Fargate is not supported).

For guidance on allocating memory and CPU for different architecture components, contact us. We can help size your deployment based on your expected workload.

Was this page helpful?