Skip to main content

Kestra benchmarks

Benchmark conclusions
Conclusions for each benchmark run for all engines in all languages and settings

Summary

Kestra delivered middle-of-the-pack performance — relatively stable for long-running tasks, but slower than competitors in lightweight workloads. While more modern than Airflow and Prefect, it falls short of the orchestration efficiency seen in Temporal, Hatchet, or Windmill.

Kestra setup

We set up Kestra version v0.22.3 using the docker-compose.yml from their official Documentation. We made some adjustments to it to have a similar setup compared to the other orchestrator.

The flow we used to run the benchmarks is the following:

id: benchmark
namespace: company.team
inputs:
- id: n
type: INT
- id: iters
type: INT
tasks:
- id: processIterations
type: io.kestra.plugin.core.flow.ForEach
values: '{{ range(0, inputs.iters - 1) }}'
concurrencyLimit: 1
tasks:
- id: python
type: io.kestra.plugin.scripts.python.Script
containerImage: python:slim
taskRunner:
type: io.kestra.plugin.core.runner.Process
script: |

def fibo(n: int):
if n <= 1:
return n
else:
return fibo(n - 1) + fibo(n - 2)

print(str(fibo({{ inputs.n }})))

We executed it once with n=33, iters=10 and once with n=10 and iters=40. Note that we set the concurrency limit to 1 meaning all task will run sequentially on one worker. Furthermore, no extra python dependencies had to be installed during the execution of those flows, , and we use a Process task runner to avoid starting a Docker container for each task execution.

Fibonacci 40 iterations, n=10

This benchmark measures the performance of Kestra when handling a large number of lightweight tasks. The tasks are Fibonacci calculations with 40 iterations and a base value of 10.

Python

Visualization
Statistics
KestraWindmillWindmill Dedicated
Total duration (in seconds)6.0444.3832.092
Assignment2.679 (44.32%)1.836 (41.89%)1.795 (85.80%)
Execution1.499 (24.80%)2.215 (50.54%)0.122 (5.83%)
Transition1.866 (30.87%)0.332 (7.57%)0.175 (8.37%)
Timing details
View task timing details
TaskCreated atStarted atCompleted at
task_000.0000.9310.966
task_011.0071.0371.073
task_021.1081.1421.175
task_031.2201.2461.286
task_041.3161.3761.415
task_051.4371.4851.523
task_061.5751.6171.653
task_071.6741.6971.735
task_081.7931.8531.891
task_091.9241.9842.018
task_102.0462.0642.105
task_112.1552.2202.258
task_122.3042.3532.390
task_132.4502.5102.550
task_142.5892.6202.664
task_152.7022.7542.789
task_162.8402.8862.922
task_172.9783.0173.053
task_183.1043.1493.184
task_193.2593.3073.344
task_203.4033.4383.473
task_213.5483.5963.634
task_223.6623.7023.737
task_233.7903.8353.871
task_243.9373.9924.033
task_254.1024.1524.190
task_264.2444.3104.345
task_274.4124.4694.505
task_284.5894.6544.692
task_294.7524.8114.844
task_304.9154.9424.986
task_315.0485.0745.110
task_325.1375.1805.217
task_335.2705.3115.349
task_345.3815.4185.459
task_355.4905.5255.566
task_365.6085.6585.696
task_375.7305.7655.804
task_385.8435.9005.936
task_395.9656.0066.044
Windmill Comparison
TaskCreated atStarted atCompleted at
task_000.0000.0030.059
task_010.0670.1130.171
task_020.1800.2260.280
task_030.2900.3350.389
task_040.3980.4460.501
task_050.5100.5580.614
task_060.6220.6690.725
task_070.7320.7800.834
task_080.8420.8890.942
task_090.9500.9971.052
task_101.0611.1081.166
task_111.1751.2201.274
task_121.2831.3301.385
task_131.3941.4401.494
task_141.5031.5501.605
task_151.6121.6611.716
task_161.7231.7701.823
task_171.8311.8781.930
task_181.9391.9862.041
task_192.0492.0962.152
task_202.1612.2092.266
task_212.2742.3202.376
task_222.3842.4312.486
task_232.4952.5422.596
task_242.6042.6522.706
task_252.7152.7612.816
task_262.8252.8722.925
task_272.9332.9793.033
task_283.0423.0903.145
task_293.1543.2013.269
task_303.2783.3253.382
task_313.3913.4373.493
task_323.5013.5483.602
task_333.6113.6603.715
task_343.7233.7703.823
task_353.8333.8793.934
task_363.9423.9904.045
task_374.0534.1014.157
task_384.1654.2124.268
task_394.2774.3244.383
Windmill Dedicated Comparison
TaskCreated atStarted atCompleted at
task_000.0000.0190.022
task_010.0290.0730.077
task_020.0810.1250.128
task_030.1340.1790.182
task_040.1870.2310.234
task_050.2390.2840.287
task_060.2920.3380.341
task_070.3450.3910.394
task_080.3980.4440.447
task_090.4510.4970.500
task_100.5050.5490.552
task_110.5570.6030.606
task_120.6100.6550.659
task_130.6630.7090.712
task_140.7160.7610.764
task_150.7680.8140.817
task_160.8210.8670.870
task_170.8760.9210.924
task_180.9290.9730.976
task_190.9811.0271.030
task_201.0351.0801.083
task_211.0871.1321.135
task_221.1391.1861.189
task_231.1931.2381.241
task_241.2461.2921.295
task_251.2991.3451.348
task_261.3521.3981.401
task_271.4051.4511.454
task_281.4581.5041.507
task_291.5121.5571.560
task_301.5641.6111.614
task_311.6181.6641.667
task_321.6711.7171.720
task_331.7241.7701.773
task_341.7771.8231.826
task_351.8301.8761.879
task_361.8841.9301.933
task_371.9371.9831.986
task_381.9912.0362.039
task_392.0432.0892.092

Javascript

Visualization
Statistics
KestraWindmillWindmill Dedicated
Total duration (in seconds)9.0502.9732.125
Assignment2.777 (30.69%)1.427 (48.00%)1.786 (84.05%)
Execution4.633 (51.19%)0.289 (9.72%)0.126 (5.93%)
Transition1.640 (18.12%)1.257 (42.28%)0.213 (10.02%)
Timing details
View task timing details
TaskCreated atStarted atCompleted at
task_000.0000.9321.042
task_011.0821.1391.248
task_021.3071.3461.458
task_031.5041.5531.667
task_041.6981.7351.846
task_051.8751.9172.026
task_062.0652.1242.237
task_072.2602.2812.394
task_082.4142.4632.580
task_092.6072.6712.789
task_102.8172.8532.968
task_113.0063.0353.145
task_123.1833.2433.358
task_133.4073.4503.563
task_143.6013.6323.745
task_153.7853.8163.928
task_163.9804.0244.144
task_174.1914.2584.371
task_184.4214.4684.576
task_194.6164.6504.765
task_204.8134.8604.970
task_215.0005.0685.219
task_225.2595.3055.438
task_235.4765.5425.658
task_245.6935.7515.862
task_255.8975.9336.047
task_266.1026.1416.253
task_276.2866.3246.439
task_286.4766.5076.630
task_296.6706.7156.836
task_306.8936.9507.061
task_317.1057.1637.280
task_327.3147.3717.496
task_337.5467.6087.723
task_347.7857.8427.960
task_358.0278.0778.195
task_368.2448.2858.401
task_378.4408.4938.609
task_388.6768.7278.843
task_398.8898.9359.050
Windmill Comparison
TaskCreated atStarted atCompleted at
task_000.0000.0060.014
task_010.0510.0740.081
task_020.1050.1550.163
task_030.1840.2220.229
task_040.2390.2860.294
task_050.3300.3640.372
task_060.4110.4470.455
task_070.4930.5280.536
task_080.5730.6100.617
task_090.6550.6890.693
task_100.7050.7510.759
task_110.7970.8320.840
task_120.8760.9110.918
task_130.9570.9890.993
task_141.0041.0511.058
task_151.0981.1331.141
task_161.1671.2141.222
task_171.2471.2831.291
task_181.3131.3511.358
task_191.3941.4161.424
task_201.4691.4801.487
task_211.5131.5601.568
task_221.5801.6251.632
task_231.6691.7041.712
task_241.7511.7871.791
task_251.8011.8481.855
task_261.8941.9291.936
task_271.9762.0122.019
task_282.0572.0922.099
task_292.1382.1742.182
task_302.2222.2562.263
task_312.3042.3362.344
task_322.3862.4202.428
task_332.4672.5032.511
task_342.5482.5832.591
task_352.6292.6662.673
task_362.7122.7462.754
task_372.7962.8252.832
task_382.8692.9032.908
task_392.9202.9662.973
Windmill Dedicated Comparison
TaskCreated atStarted atCompleted at
task_000.0220.0530.057
task_010.0610.1050.109
task_020.1130.1580.161
task_030.1660.2120.215
task_040.2210.2660.270
task_050.2750.3180.321
task_060.3260.3720.375
task_070.3800.4240.427
task_080.4330.4770.480
task_090.4850.5310.534
task_100.5380.5840.588
task_110.5920.6370.640
task_120.6450.6900.693
task_130.6980.7430.746
task_140.7510.7960.799
task_150.8040.8490.852
task_160.8570.9020.905
task_170.9100.9560.959
task_180.9641.0091.012
task_191.0161.0611.064
task_201.0691.1131.116
task_211.1221.1661.169
task_221.1741.2201.223
task_231.2281.2731.276
task_241.2811.3251.328
task_251.3321.3781.381
task_261.3851.4301.433
task_271.4391.4841.487
task_281.4921.5371.540
task_291.5441.5891.593
task_301.5971.6431.646
task_311.6501.6951.698
task_321.7041.7471.750
task_331.7561.8001.804
task_341.8091.8531.856
task_351.8611.9061.909
task_361.9141.9601.963
task_371.9672.0142.017
task_382.0232.0682.071
task_392.0762.1222.125

Fibonacci 10 iterations, n=33

This benchmark measures the performance of Kestra when handling a large number of lightweight tasks. The tasks are Fibonacci calculations with 10 iterations and a base value of 33.

Python

Visualization
Statistics
KestraWindmillWindmill Dedicated
Total duration (in seconds)15.7868.3477.701
Assignment1.365 (8.65%)0.428 (5.13%)0.370 (4.80%)
Execution14.029 (88.87%)7.832 (93.83%)7.205 (93.56%)
Transition0.392 (2.48%)0.087 (1.04%)0.126 (1.64%)
Timing details
View task timing details
TaskCreated atStarted atCompleted at
task_000.0000.8492.279
task_012.3242.3733.764
task_023.8263.8935.293
task_035.3305.3836.775
task_046.8266.8748.253
task_058.2958.3589.759
task_069.8039.87011.275
task_0711.32311.37912.822
task_0812.84412.91114.303
task_0914.34414.39015.786
Windmill Comparison
TaskCreated atStarted atCompleted at
task_000.0000.0020.846
task_010.8580.9061.705
task_021.7151.7612.539
task_032.5482.5953.365
task_043.3753.4214.206
task_054.2154.2635.033
task_065.0425.0895.857
task_075.8665.9136.684
task_086.6936.7407.519
task_097.5297.5798.347
Windmill Dedicated Comparison
TaskCreated atStarted atCompleted at
task_000.0000.0230.745
task_010.7760.7971.518
task_021.5461.5712.292
task_032.2982.3403.057
task_043.0633.1143.845
task_053.8743.8894.608
task_064.6144.6615.380
task_075.3855.4336.151
task_086.1586.2086.925
task_096.9336.9817.701

Javascript

Visualization
Statistics
KestraWindmillWindmill Dedicated
Total duration (in seconds)2.9190.9351.077
Assignment0.778 (26.65%)0.054 (5.78%)0.239 (22.19%)
Execution1.780 (60.98%)0.773 (82.67%)0.765 (71.03%)
Transition0.361 (12.37%)0.108 (11.55%)0.073 (6.78%)
Timing details
View task timing details
TaskCreated atStarted atCompleted at
task_000.0000.2810.462
task_010.5160.5650.742
task_020.8050.8501.027
task_031.0431.0831.258
task_041.3011.3421.523
task_051.5611.6271.804
task_061.8481.9112.090
task_072.1342.1972.375
task_082.4012.4812.658
task_092.6912.7412.919
Windmill Comparison
TaskCreated atStarted atCompleted at
task_000.0230.0260.106
task_010.1150.1180.202
task_020.2110.2180.298
task_030.3080.3150.393
task_040.4030.4110.487
task_050.4960.5030.578
task_060.5890.5960.671
task_070.6800.6820.760
task_080.7690.7710.845
task_090.8540.8620.935
Windmill Dedicated Comparison
TaskCreated atStarted atCompleted at
task_000.0220.0560.134
task_010.1400.1630.241
task_020.2460.2680.346
task_030.3520.3730.449
task_040.4560.4780.554
task_050.5600.5820.659
task_060.6640.6880.764
task_070.7690.7930.869
task_080.8740.8970.972
task_090.9781.0021.077