@@ -528,6 +528,7 @@ const EnvironmentSchema = z
528528 MAXIMUM_TRACE_SUMMARY_VIEW_COUNT : z . coerce . number ( ) . int ( ) . default ( 25_000 ) ,
529529 MAXIMUM_TRACE_DETAILED_SUMMARY_VIEW_COUNT : z . coerce . number ( ) . int ( ) . default ( 10_000 ) ,
530530 TASK_PAYLOAD_OFFLOAD_THRESHOLD : z . coerce . number ( ) . int ( ) . default ( 524_288 ) , // 512KB
531+ BATCH_PAYLOAD_OFFLOAD_THRESHOLD : z . coerce . number ( ) . int ( ) . optional ( ) , // Defaults to TASK_PAYLOAD_OFFLOAD_THRESHOLD if not set
531532 TASK_PAYLOAD_MAXIMUM_SIZE : z . coerce . number ( ) . int ( ) . default ( 3_145_728 ) , // 3MB
532533 BATCH_TASK_PAYLOAD_MAXIMUM_SIZE : z . coerce . number ( ) . int ( ) . default ( 1_000_000 ) , // 1MB
533534 TASK_RUN_METADATA_MAXIMUM_SIZE : z . coerce . number ( ) . int ( ) . default ( 262_144 ) , // 256KB
@@ -537,6 +538,14 @@ const EnvironmentSchema = z
537538 MAX_BATCH_V2_TRIGGER_ITEMS : z . coerce . number ( ) . int ( ) . default ( 500 ) ,
538539 MAX_BATCH_AND_WAIT_V2_TRIGGER_ITEMS : z . coerce . number ( ) . int ( ) . default ( 500 ) ,
539540
541+ // 2-phase batch API settings
542+ STREAMING_BATCH_MAX_ITEMS : z . coerce . number ( ) . int ( ) . default ( 1_000 ) , // Max items in streaming batch
543+ STREAMING_BATCH_ITEM_MAXIMUM_SIZE : z . coerce . number ( ) . int ( ) . default ( 3_145_728 ) ,
544+ BATCH_RATE_LIMIT_REFILL_RATE : z . coerce . number ( ) . int ( ) . default ( 100 ) ,
545+ BATCH_RATE_LIMIT_MAX : z . coerce . number ( ) . int ( ) . default ( 1200 ) ,
546+ BATCH_RATE_LIMIT_REFILL_INTERVAL : z . string ( ) . default ( "10s" ) ,
547+ BATCH_CONCURRENCY_LIMIT_DEFAULT : z . coerce . number ( ) . int ( ) . default ( 10 ) ,
548+
540549 REALTIME_STREAM_VERSION : z . enum ( [ "v1" , "v2" ] ) . default ( "v1" ) ,
541550 REALTIME_STREAM_MAX_LENGTH : z . coerce . number ( ) . int ( ) . default ( 1000 ) ,
542551 REALTIME_STREAM_TTL : z . coerce
@@ -931,6 +940,17 @@ const EnvironmentSchema = z
931940 . default ( process . env . REDIS_TLS_DISABLED ?? "false" ) ,
932941 BATCH_TRIGGER_WORKER_REDIS_CLUSTER_MODE_ENABLED : z . string ( ) . default ( "0" ) ,
933942
943+ // BatchQueue DRR settings (Run Engine v2)
944+ BATCH_QUEUE_DRR_QUANTUM : z . coerce . number ( ) . int ( ) . default ( 25 ) ,
945+ BATCH_QUEUE_MAX_DEFICIT : z . coerce . number ( ) . int ( ) . default ( 100 ) ,
946+ BATCH_QUEUE_CONSUMER_COUNT : z . coerce . number ( ) . int ( ) . default ( 3 ) ,
947+ BATCH_QUEUE_CONSUMER_INTERVAL_MS : z . coerce . number ( ) . int ( ) . default ( 50 ) ,
948+ // Global rate limit: max items processed per second across all consumers
949+ // If not set, no global rate limiting is applied
950+ BATCH_QUEUE_GLOBAL_RATE_LIMIT : z . coerce . number ( ) . int ( ) . positive ( ) . optional ( ) ,
951+ // Processing concurrency: max concurrent batch items being processed per environment
952+ BATCH_CONCURRENCY_DEFAULT_CONCURRENCY : z . coerce . number ( ) . int ( ) . default ( 1 ) ,
953+
934954 ADMIN_WORKER_ENABLED : z . string ( ) . default ( process . env . WORKER_ENABLED ?? "true" ) ,
935955 ADMIN_WORKER_CONCURRENCY_WORKERS : z . coerce . number ( ) . int ( ) . default ( 2 ) ,
936956 ADMIN_WORKER_CONCURRENCY_TASKS_PER_WORKER : z . coerce . number ( ) . int ( ) . default ( 10 ) ,
0 commit comments