diff --git a/src/load_generator/command/__main__.py b/src/load_generator/command/__main__.py
index bc09607a57e44cf119d062cfc1914bb1be3be8bf..a97f081a32269ff824733b9a2a69be21bfb2004f 100644
--- a/src/load_generator/command/__main__.py
+++ b/src/load_generator/command/__main__.py
@@ -39,6 +39,7 @@ def main():
         availability_ranges   = [[0.0, 99.9999]],
         capacity_gbps_ranges  = [[0.1, 100.00]],
         e2e_latency_ms_ranges = [[5.0, 100.00]],
+        max_workers   = 10,
         dry_mode      = False,           # in dry mode, no request is sent to TeraFlowSDN
         record_to_dlt = False,           # if record_to_dlt, changes in device/link/service/slice are uploaded to DLT
         dlt_domain_id = 'dlt-perf-eval', # domain used to uploaded entities, ignored when record_to_dlt = False
diff --git a/src/load_generator/load_gen/Constants.py b/src/load_generator/load_gen/Constants.py
index 9ae3cdc1216891ca4dfcf01c1bd49d27bf4ef6f6..09cdecab124a776d3f71f66554db0934eaf1bb1c 100644
--- a/src/load_generator/load_gen/Constants.py
+++ b/src/load_generator/load_gen/Constants.py
@@ -27,4 +27,8 @@ ENDPOINT_COMPATIBILITY = {
     'PHOTONIC_MEDIA:DWDM:G_50GHZ:INPUT'  : 'PHOTONIC_MEDIA:DWDM:G_50GHZ:OUTPUT',
 }
 
-MAX_WORKER_THREADS = 10
\ No newline at end of file
+DEFAULT_AVAILABILITY_RANGES   = [[0.0, 99.9999]]
+DEFAULT_CAPACITY_GBPS_RANGES  = [[0.1, 100.00]]
+DEFAULT_E2E_LATENCY_MS_RANGES = [[5.0, 100.00]]
+
+DEFAULT_MAX_WORKERS = 10
diff --git a/src/load_generator/load_gen/Parameters.py b/src/load_generator/load_gen/Parameters.py
index c0bd6e5f6b1f4fd96be420b6b32f1c290aae2dac..aca40cd3854fad203f15ce9b07a79715e9ea46f6 100644
--- a/src/load_generator/load_gen/Parameters.py
+++ b/src/load_generator/load_gen/Parameters.py
@@ -13,11 +13,10 @@
 # limitations under the License.
 
 from typing import List, Optional
+from load_generator.load_gen.Constants import (
+    DEFAULT_AVAILABILITY_RANGES, DEFAULT_CAPACITY_GBPS_RANGES, DEFAULT_E2E_LATENCY_MS_RANGES, DEFAULT_MAX_WORKERS)
 from load_generator.tools.ListScalarRange import Type_ListScalarRange
 
-DEFAULT_AVAILABILITY_RANGES   = [[0.0, 99.9999]]
-DEFAULT_CAPACITY_GBPS_RANGES  = [[0.1, 100.00]]
-DEFAULT_E2E_LATENCY_MS_RANGES = [[5.0, 100.00]]
 
 class Parameters:
     def __init__(
@@ -26,7 +25,7 @@ class Parameters:
         availability_ranges : Type_ListScalarRange = DEFAULT_AVAILABILITY_RANGES,
         capacity_gbps_ranges : Type_ListScalarRange = DEFAULT_CAPACITY_GBPS_RANGES,
         e2e_latency_ms_ranges : Type_ListScalarRange = DEFAULT_E2E_LATENCY_MS_RANGES,
-        do_teardown : bool = True, dry_mode : bool = False,
+        max_workers : int = DEFAULT_MAX_WORKERS, do_teardown : bool = True, dry_mode : bool = False,
         record_to_dlt : bool = False, dlt_domain_id : Optional[str] = None
     ) -> None:
         self._num_requests = num_requests
@@ -37,6 +36,7 @@ class Parameters:
         self._availability_ranges = availability_ranges
         self._capacity_gbps_ranges = capacity_gbps_ranges
         self._e2e_latency_ms_ranges = e2e_latency_ms_ranges
+        self._max_workers = max_workers
         self._do_teardown = do_teardown
         self._dry_mode = dry_mode
         self._record_to_dlt = record_to_dlt
@@ -80,6 +80,9 @@ class Parameters:
     @property
     def e2e_latency_ms_ranges(self): return self._e2e_latency_ms_ranges
 
+    @property
+    def max_workers(self): return self._max_workers
+
     @property
     def do_teardown(self): return self._do_teardown
 
diff --git a/src/load_generator/load_gen/RequestScheduler.py b/src/load_generator/load_gen/RequestScheduler.py
index 6cee90bc1c70b17e543c70d219a60e5561b4f52b..080e607d784c14131d9dd3d716e4fb5675622048 100644
--- a/src/load_generator/load_gen/RequestScheduler.py
+++ b/src/load_generator/load_gen/RequestScheduler.py
@@ -23,7 +23,6 @@ from common.proto.context_pb2 import Service, ServiceId, Slice, SliceId
 from common.tools.grpc.Tools import grpc_message_to_json_string
 from service.client.ServiceClient import ServiceClient
 from slice.client.SliceClient import SliceClient
-from .Constants import MAX_WORKER_THREADS
 from .DltTools import explore_entities_to_record, record_entities
 from .Parameters import Parameters
 from .RequestGenerator import RequestGenerator
@@ -44,7 +43,7 @@ class RequestScheduler:
         self._scheduler = scheduler_class()
         self._scheduler.configure(
             jobstores = {'default': MemoryJobStore()},
-            executors = {'default': ThreadPoolExecutor(max_workers=MAX_WORKER_THREADS)},
+            executors = {'default': ThreadPoolExecutor(max_workers=parameters.max_workers)},
             job_defaults = {
                 'coalesce': False,
                 'max_instances': 100,
diff --git a/src/load_generator/service/LoadGeneratorServiceServicerImpl.py b/src/load_generator/service/LoadGeneratorServiceServicerImpl.py
index 6f47ff6ed1504f5321ace19c99bb02017d24835e..41c12d8e461364c5994b9ba0989c8d4241d3e3fe 100644
--- a/src/load_generator/service/LoadGeneratorServiceServicerImpl.py
+++ b/src/load_generator/service/LoadGeneratorServiceServicerImpl.py
@@ -43,6 +43,7 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer):
             availability_ranges   = list_scalar_range__grpc_to_list(request.availability  ),
             capacity_gbps_ranges  = list_scalar_range__grpc_to_list(request.capacity_gbps ),
             e2e_latency_ms_ranges = list_scalar_range__grpc_to_list(request.e2e_latency_ms),
+            max_workers           = request.max_workers,
             do_teardown           = request.do_teardown,   # if set, schedule tear down of requests
             dry_mode              = request.dry_mode,      # in dry mode, no request is sent to TeraFlowSDN
             record_to_dlt         = request.record_to_dlt, # if set, upload changes to DLT
@@ -80,6 +81,7 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer):
         stat_pars.offered_load       = params.offered_load          # pylint: disable=no-member
         stat_pars.holding_time       = params.holding_time          # pylint: disable=no-member
         stat_pars.inter_arrival_time = params.inter_arrival_time    # pylint: disable=no-member
+        stat_pars.max_workers        = params.max_workers           # pylint: disable=no-member
         stat_pars.do_teardown        = params.do_teardown           # pylint: disable=no-member
         stat_pars.dry_mode           = params.dry_mode              # pylint: disable=no-member
         stat_pars.record_to_dlt      = params.record_to_dlt         # pylint: disable=no-member