docs/batch-queue-stress-test-plan.md
This document outlines a systematic approach to testing the new Batch Queue with Deficit Round Robin (DRR) scheduling.
Setup:
stress-test-taskNote: In production, multiple webapp instances will run BatchQueue consumers in parallel. This single-instance testing focuses on algorithm behavior rather than horizontal scaling.
| Variable | Default | Description |
|---|---|---|
BATCH_QUEUE_DRR_QUANTUM | 5 | Credits allocated per environment per scheduling round |
BATCH_QUEUE_MAX_DEFICIT | 50 | Maximum accumulated deficit (prevents starvation) |
BATCH_QUEUE_CONSUMER_COUNT | 1 | Number of concurrent consumer loops |
BATCH_QUEUE_CONSUMER_INTERVAL_MS | 100 | Polling interval between consumer iterations |
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY | 10 | Default concurrent batch items per environment |
BATCH_QUEUE_GLOBAL_RATE_LIMIT | none | Optional global items/sec limit |
Per-Org Settings (via database):
batchQueueConcurrencyConfig - Override concurrency per orgbatchRateLimitConfig - Rate limit per org| Series | Focus | Objective |
|---|---|---|
| A | Baseline | Establish reference metrics with defaults |
| B | DRR Quantum | Understand how quantum affects fairness and throughput |
| C | Max Deficit | Understand starvation prevention and catch-up behavior |
| D | Consumer Count | Test parallelism within single process |
| E | Consumer Interval | Test polling frequency impact |
| F | Concurrency Limits | Test per-environment processing limits |
| G | Global Rate Limiter | Test global throughput caps |
| H | Asymmetric Load | Test fairness under uneven workloads |
| I | Combined Tuning | Test optimized configurations |
Objective: Establish baseline metrics with all default settings.
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
# BATCH_QUEUE_CONSUMER_COUNT not set (default: 1)
# BATCH_QUEUE_CONSUMER_INTERVAL_MS not set (default: 100)
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
# BATCH_QUEUE_GLOBAL_RATE_LIMIT not set
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Baseline fairness test"
Expected: All tenants should complete in roughly similar timeframes.
<details> <summary>Results A1 (click to expand)</summary>{
"scenario": "fairness-9t",
"description": "Baseline fairness test",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 54.51792024230187,
"overallDuration": 49525,
"fairnessIndex": 0.9999098436641237,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49323,
"avgItemsPerSecond": 6.082355087890031,
"avgBatchDuration": 49238,
"minBatchDuration": 49196,
"maxBatchDuration": 49322,
"p50Duration": 49196,
"p95Duration": 49322,
"p99Duration": 49322
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49460,
"avgItemsPerSecond": 6.06550748079256,
"avgBatchDuration": 49290.666666666664,
"minBatchDuration": 49187,
"maxBatchDuration": 49429,
"p50Duration": 49256,
"p95Duration": 49429,
"p99Duration": 49429
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49484,
"avgItemsPerSecond": 6.062565677794843,
"avgBatchDuration": 36861.666666666664,
"minBatchDuration": 15041,
"maxBatchDuration": 49472,
"p50Duration": 46072,
"p95Duration": 49472,
"p99Duration": 49472
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 48442,
"avgItemsPerSecond": 6.192973039924033,
"avgBatchDuration": 48347,
"minBatchDuration": 48223,
"maxBatchDuration": 48442,
"p50Duration": 48376,
"p95Duration": 48442,
"p99Duration": 48442
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 48446,
"avgItemsPerSecond": 6.192461709945094,
"avgBatchDuration": 48102.333333333336,
"minBatchDuration": 47417,
"maxBatchDuration": 48446,
"p50Duration": 48444,
"p95Duration": 48446,
"p99Duration": 48446
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 48288,
"avgItemsPerSecond": 6.21272365805169,
"avgBatchDuration": 36139.333333333336,
"minBatchDuration": 16087,
"maxBatchDuration": 48218,
"p50Duration": 44113,
"p95Duration": 48218,
"p99Duration": 48218
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49148,
"avgItemsPerSecond": 6.104012370798404,
"avgBatchDuration": 49074.666666666664,
"minBatchDuration": 49061,
"maxBatchDuration": 49099,
"p50Duration": 49064,
"p95Duration": 49099,
"p99Duration": 49099
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49178,
"avgItemsPerSecond": 6.1002887470006915,
"avgBatchDuration": 48484.333333333336,
"minBatchDuration": 47154,
"maxBatchDuration": 49176,
"p50Duration": 49123,
"p95Duration": 49176,
"p99Duration": 49176
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49454,
"avgItemsPerSecond": 6.066243377684312,
"avgBatchDuration": 49372.666666666664,
"minBatchDuration": 49251,
"maxBatchDuration": 49454,
"p50Duration": 49413,
"p95Duration": 49454,
"p99Duration": 49454
}
]
},
"timestamps": {
"start": "2025-12-15T14:23:40.510Z",
"end": "2025-12-15T14:24:30.035Z"
}
}
Observations:
Command:
pnpm stress throughput --batch-sizes 100,500,1000 --batch-count 3
Expected: Establish throughput ceiling for single tenant.
<details> <summary>Results A2 (click to expand)</summary>[
{
"scenario": "throughput-100",
"config": {
"tenantCount": 1,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 300,
"totalBatches": 3,
"overallThroughput": 82.57638315441784,
"overallDuration": 3633,
"fairnessIndex": 1,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 3570,
"avgItemsPerSecond": 84.03361344537815,
"avgBatchDuration": 3558.6666666666665,
"minBatchDuration": 3538,
"maxBatchDuration": 3570,
"p50Duration": 3568,
"p95Duration": 3570,
"p99Duration": 3570
}
]
},
"timestamps": {
"start": "2025-12-15T14:41:19.119Z",
"end": "2025-12-15T14:41:22.752Z"
}
},
{
"scenario": "throughput-500",
"config": {
"tenantCount": 1,
"batchSize": 500,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 1500,
"totalBatches": 3,
"overallThroughput": 97.48488984207448,
"overallDuration": 15387,
"fairnessIndex": 1,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 1500,
"totalBatches": 3,
"totalDuration": 15384,
"avgItemsPerSecond": 97.50390015600624,
"avgBatchDuration": 15369,
"minBatchDuration": 15356,
"maxBatchDuration": 15384,
"p50Duration": 15367,
"p95Duration": 15384,
"p99Duration": 15384
}
]
},
"timestamps": {
"start": "2025-12-15T14:41:23.069Z",
"end": "2025-12-15T14:41:38.456Z"
}
},
{
"scenario": "throughput-1000",
"config": {
"tenantCount": 1,
"batchSize": 1000,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 3000,
"totalBatches": 3,
"overallThroughput": 88.60796880999499,
"overallDuration": 33857,
"fairnessIndex": 1,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 3000,
"totalBatches": 3,
"totalDuration": 33839,
"avgItemsPerSecond": 88.65510210112592,
"avgBatchDuration": 33109,
"minBatchDuration": 32731,
"maxBatchDuration": 33827,
"p50Duration": 32769,
"p95Duration": 33827,
"p99Duration": 33827
}
]
},
"timestamps": {
"start": "2025-12-15T14:41:38.860Z",
"end": "2025-12-15T14:42:12.717Z"
}
}
]
Observations:
Objective: Understand how quantum size affects fairness vs. throughput tradeoff.
Theory:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=1
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Low quantum=1"
{
"scenario": "fairness-9t",
"description": "Low quantum=1",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 66.08899985313556,
"overallDuration": 40854,
"fairnessIndex": 0.9997008998554137,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40769,
"avgItemsPerSecond": 7.358532218106895,
"avgBatchDuration": 36850.333333333336,
"minBatchDuration": 29016,
"maxBatchDuration": 40769,
"p50Duration": 40766,
"p95Duration": 40769,
"p99Duration": 40769
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40771,
"avgItemsPerSecond": 7.358171249172206,
"avgBatchDuration": 40408.333333333336,
"minBatchDuration": 39684,
"maxBatchDuration": 40771,
"p50Duration": 40770,
"p95Duration": 40771,
"p99Duration": 40771
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40754,
"avgItemsPerSecond": 7.361240614418216,
"avgBatchDuration": 40106,
"minBatchDuration": 39076,
"maxBatchDuration": 40753,
"p50Duration": 40489,
"p95Duration": 40753,
"p99Duration": 40753
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40770,
"avgItemsPerSecond": 7.358351729212656,
"avgBatchDuration": 40717.333333333336,
"minBatchDuration": 40616,
"maxBatchDuration": 40769,
"p50Duration": 40767,
"p95Duration": 40769,
"p99Duration": 40769
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40767,
"avgItemsPerSecond": 7.358893222459342,
"avgBatchDuration": 40610,
"minBatchDuration": 40299,
"maxBatchDuration": 40766,
"p50Duration": 40765,
"p95Duration": 40766,
"p99Duration": 40766
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40780,
"avgItemsPerSecond": 7.356547327121138,
"avgBatchDuration": 40681.666666666664,
"minBatchDuration": 40497,
"maxBatchDuration": 40778,
"p50Duration": 40770,
"p95Duration": 40778,
"p99Duration": 40778
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40771,
"avgItemsPerSecond": 7.358171249172206,
"avgBatchDuration": 40766.333333333336,
"minBatchDuration": 40764,
"maxBatchDuration": 40769,
"p50Duration": 40766,
"p95Duration": 40769,
"p99Duration": 40769
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 38628,
"avgItemsPerSecond": 7.766387076731904,
"avgBatchDuration": 34753,
"minBatchDuration": 28057,
"maxBatchDuration": 38627,
"p50Duration": 37575,
"p95Duration": 38627,
"p99Duration": 38627
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40754,
"avgItemsPerSecond": 7.361240614418216,
"avgBatchDuration": 40018.333333333336,
"minBatchDuration": 39630,
"maxBatchDuration": 40754,
"p50Duration": 39671,
"p95Duration": 40754,
"p99Duration": 40754
}
]
},
"timestamps": {
"start": "2025-12-15T14:48:32.814Z",
"end": "2025-12-15T14:49:13.668Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=10
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Medium quantum=10"
{
"scenario": "fairness-9t",
"description": "Medium quantum=10",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 64.68615237182559,
"overallDuration": 41740,
"fairnessIndex": 0.9998055065601579,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40743,
"avgItemsPerSecond": 7.363228039172373,
"avgBatchDuration": 37656,
"minBatchDuration": 31484,
"maxBatchDuration": 40743,
"p50Duration": 40741,
"p95Duration": 40743,
"p99Duration": 40743
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40745,
"avgItemsPerSecond": 7.362866609399926,
"avgBatchDuration": 36601.666666666664,
"minBatchDuration": 28318,
"maxBatchDuration": 40745,
"p50Duration": 40742,
"p95Duration": 40745,
"p99Duration": 40745
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41664,
"avgItemsPerSecond": 7.200460829493087,
"avgBatchDuration": 38524.333333333336,
"minBatchDuration": 32253,
"maxBatchDuration": 41660,
"p50Duration": 41660,
"p95Duration": 41660,
"p99Duration": 41660
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41443,
"avgItemsPerSecond": 7.238858190768043,
"avgBatchDuration": 36661.333333333336,
"minBatchDuration": 32251,
"maxBatchDuration": 41443,
"p50Duration": 36290,
"p95Duration": 41443,
"p99Duration": 41443
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40436,
"avgItemsPerSecond": 7.419131467009596,
"avgBatchDuration": 40406,
"minBatchDuration": 40349,
"maxBatchDuration": 40436,
"p50Duration": 40433,
"p95Duration": 40436,
"p99Duration": 40436
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41044,
"avgItemsPerSecond": 7.309229119968814,
"avgBatchDuration": 39122,
"minBatchDuration": 35972,
"maxBatchDuration": 41040,
"p50Duration": 40354,
"p95Duration": 41040,
"p99Duration": 41040
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41683,
"avgItemsPerSecond": 7.197178705947269,
"avgBatchDuration": 41325,
"minBatchDuration": 40636,
"maxBatchDuration": 41683,
"p50Duration": 41656,
"p95Duration": 41683,
"p99Duration": 41683
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41412,
"avgItemsPerSecond": 7.244277021153288,
"avgBatchDuration": 40959.666666666664,
"minBatchDuration": 40735,
"maxBatchDuration": 41406,
"p50Duration": 40738,
"p95Duration": 41406,
"p99Duration": 41406
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 39914,
"avgItemsPerSecond": 7.516159743448415,
"avgBatchDuration": 36645,
"minBatchDuration": 32034,
"maxBatchDuration": 39914,
"p50Duration": 37987,
"p95Duration": 39914,
"p99Duration": 39914
}
]
},
"timestamps": {
"start": "2025-12-15T14:51:13.796Z",
"end": "2025-12-15T14:51:55.536Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=25
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "High quantum=25"
{
"scenario": "fairness-9t",
"description": "High quantum=25",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 84.3644544431946,
"overallDuration": 32004,
"fairnessIndex": 0.9999195340273302,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31137,
"avgItemsPerSecond": 9.634839579920994,
"avgBatchDuration": 31135.333333333332,
"minBatchDuration": 31134,
"maxBatchDuration": 31137,
"p50Duration": 31135,
"p95Duration": 31137,
"p99Duration": 31137
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31135,
"avgItemsPerSecond": 9.635458487233016,
"avgBatchDuration": 30287.333333333332,
"minBatchDuration": 29792,
"maxBatchDuration": 31133,
"p50Duration": 29937,
"p95Duration": 31133,
"p99Duration": 31133
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31197,
"avgItemsPerSecond": 9.616309260505819,
"avgBatchDuration": 24641,
"minBatchDuration": 18973,
"maxBatchDuration": 31197,
"p50Duration": 23753,
"p95Duration": 31197,
"p99Duration": 31197
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31105,
"avgItemsPerSecond": 9.644751647645073,
"avgBatchDuration": 29303,
"minBatchDuration": 25964,
"maxBatchDuration": 31105,
"p50Duration": 30840,
"p95Duration": 31105,
"p99Duration": 31105
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31120,
"avgItemsPerSecond": 9.640102827763496,
"avgBatchDuration": 31006.333333333332,
"minBatchDuration": 30835,
"maxBatchDuration": 31120,
"p50Duration": 31064,
"p95Duration": 31120,
"p99Duration": 31120
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31075,
"avgItemsPerSecond": 9.654062751407883,
"avgBatchDuration": 24953.333333333332,
"minBatchDuration": 21079,
"maxBatchDuration": 31073,
"p50Duration": 22708,
"p95Duration": 31073,
"p99Duration": 31073
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31965,
"avgItemsPerSecond": 9.385265133740027,
"avgBatchDuration": 25924.666666666668,
"minBatchDuration": 22904,
"maxBatchDuration": 31964,
"p50Duration": 22906,
"p95Duration": 31964,
"p99Duration": 31964
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31106,
"avgItemsPerSecond": 9.644441586832123,
"avgBatchDuration": 26298.333333333332,
"minBatchDuration": 16867,
"maxBatchDuration": 31106,
"p50Duration": 30922,
"p95Duration": 31106,
"p99Duration": 31106
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30886,
"avgItemsPerSecond": 9.713138638865505,
"avgBatchDuration": 30883,
"minBatchDuration": 30881,
"maxBatchDuration": 30884,
"p50Duration": 30884,
"p95Duration": 30884,
"p99Duration": 30884
}
]
},
"timestamps": {
"start": "2025-12-15T14:54:10.280Z",
"end": "2025-12-15T14:54:42.284Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=50
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Very high quantum=50"
{
"scenario": "fairness-9t",
"description": "Very high quantum=50",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 51.97605251506343,
"overallDuration": 51947,
"fairnessIndex": 0.9997441540697334,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51416,
"avgItemsPerSecond": 5.834759607904155,
"avgBatchDuration": 51002,
"minBatchDuration": 50774,
"maxBatchDuration": 51416,
"p50Duration": 50816,
"p95Duration": 51416,
"p99Duration": 51416
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51847,
"avgItemsPerSecond": 5.786255713927518,
"avgBatchDuration": 51840.666666666664,
"minBatchDuration": 51838,
"maxBatchDuration": 51843,
"p50Duration": 51841,
"p95Duration": 51843,
"p99Duration": 51843
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51252,
"avgItemsPerSecond": 5.853430110044486,
"avgBatchDuration": 51034.333333333336,
"minBatchDuration": 50778,
"maxBatchDuration": 51250,
"p50Duration": 51075,
"p95Duration": 51250,
"p99Duration": 51250
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 50778,
"avgItemsPerSecond": 5.908070424199456,
"avgBatchDuration": 50768.666666666664,
"minBatchDuration": 50765,
"maxBatchDuration": 50776,
"p50Duration": 50765,
"p95Duration": 50776,
"p99Duration": 50776
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49692,
"avgItemsPerSecond": 6.037189084762135,
"avgBatchDuration": 49689.666666666664,
"minBatchDuration": 49687,
"maxBatchDuration": 49692,
"p50Duration": 49690,
"p95Duration": 49692,
"p99Duration": 49692
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51843,
"avgItemsPerSecond": 5.786702158439905,
"avgBatchDuration": 51842,
"minBatchDuration": 51841,
"maxBatchDuration": 51843,
"p50Duration": 51842,
"p95Duration": 51843,
"p99Duration": 51843
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 50821,
"avgItemsPerSecond": 5.9030715649042715,
"avgBatchDuration": 50794.666666666664,
"minBatchDuration": 50779,
"maxBatchDuration": 50821,
"p50Duration": 50784,
"p95Duration": 50821,
"p99Duration": 50821
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49689,
"avgItemsPerSecond": 6.037553583288052,
"avgBatchDuration": 49682,
"minBatchDuration": 49678,
"maxBatchDuration": 49689,
"p50Duration": 49679,
"p95Duration": 49689,
"p99Duration": 49689
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51838,
"avgItemsPerSecond": 5.787260310968787,
"avgBatchDuration": 51483.333333333336,
"minBatchDuration": 50775,
"maxBatchDuration": 51838,
"p50Duration": 51837,
"p95Duration": 51838,
"p99Duration": 51838
}
]
},
"timestamps": {
"start": "2025-12-15T14:58:47.844Z",
"end": "2025-12-15T14:59:39.791Z"
}
}
Observations:
Objective: Understand how max deficit cap affects catch-up behavior for starved tenants.
Theory:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=10
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Low maxDeficit=10"
{
"scenario": "fairness-9t",
"description": "Low maxDeficit=10",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 52.51385782359234,
"overallDuration": 51415,
"fairnessIndex": 0.9997739979483051,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49624,
"avgItemsPerSecond": 6.0454618732871195,
"avgBatchDuration": 49357.333333333336,
"minBatchDuration": 48832,
"maxBatchDuration": 49624,
"p50Duration": 49616,
"p95Duration": 49624,
"p99Duration": 49624
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51230,
"avgItemsPerSecond": 5.8559437829396845,
"avgBatchDuration": 50431,
"minBatchDuration": 49201,
"maxBatchDuration": 51230,
"p50Duration": 50862,
"p95Duration": 51230,
"p99Duration": 51230
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51410,
"avgItemsPerSecond": 5.83544057576347,
"avgBatchDuration": 49448.333333333336,
"minBatchDuration": 45734,
"maxBatchDuration": 51410,
"p50Duration": 51201,
"p95Duration": 51410,
"p99Duration": 51410
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49206,
"avgItemsPerSecond": 6.096817461285209,
"avgBatchDuration": 46922.333333333336,
"minBatchDuration": 42366,
"maxBatchDuration": 49201,
"p50Duration": 49200,
"p95Duration": 49201,
"p99Duration": 49201
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 50661,
"avgItemsPerSecond": 5.921714928643334,
"avgBatchDuration": 48617.666666666664,
"minBatchDuration": 46575,
"maxBatchDuration": 50661,
"p50Duration": 48617,
"p95Duration": 50661,
"p99Duration": 50661
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 50189,
"avgItemsPerSecond": 5.977405407559425,
"avgBatchDuration": 49945.666666666664,
"minBatchDuration": 49823,
"maxBatchDuration": 50189,
"p50Duration": 49825,
"p95Duration": 50189,
"p99Duration": 50189
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 51232,
"avgItemsPerSecond": 5.8557151780137415,
"avgBatchDuration": 50892.333333333336,
"minBatchDuration": 50636,
"maxBatchDuration": 51229,
"p50Duration": 50812,
"p95Duration": 51229,
"p99Duration": 51229
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 49639,
"avgItemsPerSecond": 6.0436350450250815,
"avgBatchDuration": 44099,
"minBatchDuration": 41326,
"maxBatchDuration": 49638,
"p50Duration": 41333,
"p95Duration": 49638,
"p99Duration": 49638
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 50193,
"avgItemsPerSecond": 5.976929053852131,
"avgBatchDuration": 49979.666666666664,
"minBatchDuration": 49623,
"maxBatchDuration": 50193,
"p50Duration": 50123,
"p95Duration": 50193,
"p99Duration": 50193
}
]
},
"timestamps": {
"start": "2025-12-15T15:01:17.027Z",
"end": "2025-12-15T15:02:08.442Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=25
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Medium maxDeficit=25"
{
"scenario": "fairness-9t",
"description": "Medium maxDeficit=25",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 66.32928806564142,
"overallDuration": 40706,
"fairnessIndex": 0.9992454865624668,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 39801,
"avgItemsPerSecond": 7.537499057812618,
"avgBatchDuration": 35339.333333333336,
"minBatchDuration": 28824,
"maxBatchDuration": 39800,
"p50Duration": 37394,
"p95Duration": 39800,
"p99Duration": 39800
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 39487,
"avgItemsPerSecond": 7.597437131207739,
"avgBatchDuration": 36988.666666666664,
"minBatchDuration": 34055,
"maxBatchDuration": 39486,
"p50Duration": 37425,
"p95Duration": 39486,
"p99Duration": 39486
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 37449,
"avgItemsPerSecond": 8.010894816951053,
"avgBatchDuration": 36409.333333333336,
"minBatchDuration": 34337,
"maxBatchDuration": 37447,
"p50Duration": 37444,
"p95Duration": 37447,
"p99Duration": 37447
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40648,
"avgItemsPerSecond": 7.380436921865774,
"avgBatchDuration": 39841.666666666664,
"minBatchDuration": 39419,
"maxBatchDuration": 40647,
"p50Duration": 39459,
"p95Duration": 40647,
"p99Duration": 40647
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 38760,
"avgItemsPerSecond": 7.739938080495356,
"avgBatchDuration": 36378.333333333336,
"minBatchDuration": 33012,
"maxBatchDuration": 38750,
"p50Duration": 37373,
"p95Duration": 38750,
"p99Duration": 38750
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 37706,
"avgItemsPerSecond": 7.956293428101628,
"avgBatchDuration": 37609.333333333336,
"minBatchDuration": 37424,
"maxBatchDuration": 37706,
"p50Duration": 37698,
"p95Duration": 37706,
"p99Duration": 37706
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40621,
"avgItemsPerSecond": 7.385342556805593,
"avgBatchDuration": 38921,
"minBatchDuration": 36642,
"maxBatchDuration": 40621,
"p50Duration": 39500,
"p95Duration": 40621,
"p99Duration": 40621
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 38757,
"avgItemsPerSecond": 7.740537193281214,
"avgBatchDuration": 38744,
"minBatchDuration": 38730,
"maxBatchDuration": 38757,
"p50Duration": 38745,
"p95Duration": 38757,
"p99Duration": 38757
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 38751,
"avgItemsPerSecond": 7.741735697143299,
"avgBatchDuration": 37674.666666666664,
"minBatchDuration": 35558,
"maxBatchDuration": 38740,
"p50Duration": 38726,
"p95Duration": 38740,
"p99Duration": 38740
}
]
},
"timestamps": {
"start": "2025-12-15T15:03:24.382Z",
"end": "2025-12-15T15:04:05.088Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=100
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "High maxDeficit=100"
{
"scenario": "fairness-9t",
"description": "High maxDeficit=100",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 73.73624272878718,
"overallDuration": 36617,
"fairnessIndex": 0.9988716605255289,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 32809,
"avgItemsPerSecond": 9.143832484988875,
"avgBatchDuration": 30391.666666666668,
"minBatchDuration": 28722,
"maxBatchDuration": 32751,
"p50Duration": 29702,
"p95Duration": 32751,
"p99Duration": 32751
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 36540,
"avgItemsPerSecond": 8.210180623973727,
"avgBatchDuration": 28375.666666666668,
"minBatchDuration": 13115,
"maxBatchDuration": 36537,
"p50Duration": 35475,
"p95Duration": 36537,
"p99Duration": 36537
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 36337,
"avgItemsPerSecond": 8.256047554833916,
"avgBatchDuration": 28524.666666666668,
"minBatchDuration": 13114,
"maxBatchDuration": 36322,
"p50Duration": 36138,
"p95Duration": 36322,
"p99Duration": 36322
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 35478,
"avgItemsPerSecond": 8.45594452900389,
"avgBatchDuration": 27529.333333333332,
"minBatchDuration": 23556,
"maxBatchDuration": 35475,
"p50Duration": 23557,
"p95Duration": 35475,
"p99Duration": 35475
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 35453,
"avgItemsPerSecond": 8.461907313908554,
"avgBatchDuration": 35291,
"minBatchDuration": 35039,
"maxBatchDuration": 35438,
"p50Duration": 35396,
"p95Duration": 35438,
"p99Duration": 35438
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 36430,
"avgItemsPerSecond": 8.23497117760088,
"avgBatchDuration": 34851.333333333336,
"minBatchDuration": 31705,
"maxBatchDuration": 36425,
"p50Duration": 36424,
"p95Duration": 36425,
"p99Duration": 36425
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 36500,
"avgItemsPerSecond": 8.21917808219178,
"avgBatchDuration": 31197,
"minBatchDuration": 27638,
"maxBatchDuration": 36495,
"p50Duration": 29458,
"p95Duration": 36495,
"p99Duration": 36495
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 36573,
"avgItemsPerSecond": 8.202772537117545,
"avgBatchDuration": 27671.666666666668,
"minBatchDuration": 23222,
"maxBatchDuration": 36570,
"p50Duration": 23223,
"p95Duration": 36570,
"p99Duration": 36570
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 35514,
"avgItemsPerSecond": 8.44737286703835,
"avgBatchDuration": 35127.666666666664,
"minBatchDuration": 34370,
"maxBatchDuration": 35511,
"p50Duration": 35502,
"p95Duration": 35511,
"p99Duration": 35511
}
]
},
"timestamps": {
"start": "2025-12-15T15:06:48.615Z",
"end": "2025-12-15T15:07:25.232Z"
}
}
Observations:
Objective: Test parallelism within a single process.
Theory:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=1
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Single consumer"
{
"scenario": "fairness-9t",
"description": "Single consumer",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 41.326108917255944,
"overallDuration": 65334,
"fairnessIndex": 0.9996736075271871,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 62086,
"avgItemsPerSecond": 4.832007215797443,
"avgBatchDuration": 60490.333333333336,
"minBatchDuration": 59021,
"maxBatchDuration": 62084,
"p50Duration": 60366,
"p95Duration": 62084,
"p99Duration": 62084
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 65000,
"avgItemsPerSecond": 4.615384615384616,
"avgBatchDuration": 63631.333333333336,
"minBatchDuration": 61952,
"maxBatchDuration": 64991,
"p50Duration": 63951,
"p95Duration": 64991,
"p99Duration": 64991
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 62539,
"avgItemsPerSecond": 4.797006667839269,
"avgBatchDuration": 60631,
"minBatchDuration": 58991,
"maxBatchDuration": 62536,
"p50Duration": 60366,
"p95Duration": 62536,
"p99Duration": 62536
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 64125,
"avgItemsPerSecond": 4.678362573099415,
"avgBatchDuration": 61768.666666666664,
"minBatchDuration": 58220,
"maxBatchDuration": 64118,
"p50Duration": 62968,
"p95Duration": 64118,
"p99Duration": 64118
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 62536,
"avgItemsPerSecond": 4.797236791608034,
"avgBatchDuration": 55644,
"minBatchDuration": 48107,
"maxBatchDuration": 62516,
"p50Duration": 56309,
"p95Duration": 62516,
"p99Duration": 62516
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 65257,
"avgItemsPerSecond": 4.597207962364191,
"avgBatchDuration": 62698.666666666664,
"minBatchDuration": 60933,
"maxBatchDuration": 65257,
"p50Duration": 61906,
"p95Duration": 65257,
"p99Duration": 65257
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 62654,
"avgItemsPerSecond": 4.788201870590864,
"avgBatchDuration": 60963.666666666664,
"minBatchDuration": 59342,
"maxBatchDuration": 62654,
"p50Duration": 60895,
"p95Duration": 62654,
"p99Duration": 62654
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 62966,
"avgItemsPerSecond": 4.76447606644856,
"avgBatchDuration": 61417.333333333336,
"minBatchDuration": 60031,
"maxBatchDuration": 62961,
"p50Duration": 61260,
"p95Duration": 62961,
"p99Duration": 62961
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 64690,
"avgItemsPerSecond": 4.637501932292472,
"avgBatchDuration": 59325,
"minBatchDuration": 51023,
"maxBatchDuration": 64686,
"p50Duration": 62266,
"p95Duration": 64686,
"p99Duration": 64686
}
]
},
"timestamps": {
"start": "2025-12-15T15:09:10.445Z",
"end": "2025-12-15T15:10:15.779Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "3 consumers"
{
"scenario": "fairness-9t",
"description": "3 consumers",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 57.55211663895639,
"overallDuration": 46914,
"fairnessIndex": 0.9992021047885379,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46746,
"avgItemsPerSecond": 6.417661404184315,
"avgBatchDuration": 46353,
"minBatchDuration": 45585,
"maxBatchDuration": 46746,
"p50Duration": 46728,
"p95Duration": 46746,
"p99Duration": 46746
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46812,
"avgItemsPerSecond": 6.40861317610869,
"avgBatchDuration": 46805,
"minBatchDuration": 46794,
"maxBatchDuration": 46812,
"p50Duration": 46809,
"p95Duration": 46812,
"p99Duration": 46812
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46606,
"avgItemsPerSecond": 6.436939449856242,
"avgBatchDuration": 38880,
"minBatchDuration": 33105,
"maxBatchDuration": 46604,
"p50Duration": 36931,
"p95Duration": 46604,
"p99Duration": 46604
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46821,
"avgItemsPerSecond": 6.407381303261357,
"avgBatchDuration": 46059,
"minBatchDuration": 45679,
"maxBatchDuration": 46810,
"p50Duration": 45688,
"p95Duration": 46810,
"p99Duration": 46810
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 43729,
"avgItemsPerSecond": 6.860435866358709,
"avgBatchDuration": 42251,
"minBatchDuration": 39304,
"maxBatchDuration": 43729,
"p50Duration": 43720,
"p95Duration": 43729,
"p99Duration": 43729
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46597,
"avgItemsPerSecond": 6.438182715625469,
"avgBatchDuration": 45484.333333333336,
"minBatchDuration": 44415,
"maxBatchDuration": 46567,
"p50Duration": 45471,
"p95Duration": 46567,
"p99Duration": 46567
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46808,
"avgItemsPerSecond": 6.409160827209024,
"avgBatchDuration": 45405,
"minBatchDuration": 43679,
"maxBatchDuration": 46761,
"p50Duration": 45775,
"p95Duration": 46761,
"p99Duration": 46761
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46811,
"avgItemsPerSecond": 6.408750080109376,
"avgBatchDuration": 45293,
"minBatchDuration": 44526,
"maxBatchDuration": 46784,
"p50Duration": 44569,
"p95Duration": 46784,
"p99Duration": 46784
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 43732,
"avgItemsPerSecond": 6.859965242842769,
"avgBatchDuration": 41508,
"minBatchDuration": 39455,
"maxBatchDuration": 43581,
"p50Duration": 41488,
"p95Duration": 43581,
"p99Duration": 43581
}
]
},
"timestamps": {
"start": "2025-12-15T15:11:42.929Z",
"end": "2025-12-15T15:12:29.843Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=5
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "5 consumers"
{
"scenario": "fairness-9t",
"description": "5 consumers",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 63.80263717566993,
"overallDuration": 42318,
"fairnessIndex": 0.9999000645903268,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41203,
"avgItemsPerSecond": 7.281023226464092,
"avgBatchDuration": 40931,
"minBatchDuration": 40810,
"maxBatchDuration": 41167,
"p50Duration": 40816,
"p95Duration": 41167,
"p99Duration": 41167
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41814,
"avgItemsPerSecond": 7.1746305065289135,
"avgBatchDuration": 37657.333333333336,
"minBatchDuration": 35575,
"maxBatchDuration": 41814,
"p50Duration": 35583,
"p95Duration": 41814,
"p99Duration": 41814
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41795,
"avgItemsPerSecond": 7.177892092355545,
"avgBatchDuration": 37201.666666666664,
"minBatchDuration": 34298,
"maxBatchDuration": 41795,
"p50Duration": 35512,
"p95Duration": 41795,
"p99Duration": 41795
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41837,
"avgItemsPerSecond": 7.170686234672658,
"avgBatchDuration": 40580.333333333336,
"minBatchDuration": 38694,
"maxBatchDuration": 41833,
"p50Duration": 41214,
"p95Duration": 41833,
"p99Duration": 41833
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41829,
"avgItemsPerSecond": 7.1720576633436135,
"avgBatchDuration": 39891.666666666664,
"minBatchDuration": 37128,
"maxBatchDuration": 41786,
"p50Duration": 40761,
"p95Duration": 41786,
"p99Duration": 41786
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 42246,
"avgItemsPerSecond": 7.10126402499645,
"avgBatchDuration": 34807.333333333336,
"minBatchDuration": 28353,
"maxBatchDuration": 42154,
"p50Duration": 33915,
"p95Duration": 42154,
"p99Duration": 42154
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41654,
"avgItemsPerSecond": 7.202189465597542,
"avgBatchDuration": 40819.333333333336,
"minBatchDuration": 40181,
"maxBatchDuration": 41653,
"p50Duration": 40624,
"p95Duration": 41653,
"p99Duration": 41653
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 41210,
"avgItemsPerSecond": 7.279786459597185,
"avgBatchDuration": 40886.333333333336,
"minBatchDuration": 40630,
"maxBatchDuration": 41210,
"p50Duration": 40819,
"p95Duration": 41210,
"p99Duration": 41210
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 40813,
"avgItemsPerSecond": 7.350599073824517,
"avgBatchDuration": 37843.666666666664,
"minBatchDuration": 31921,
"maxBatchDuration": 40810,
"p50Duration": 40800,
"p95Duration": 40810,
"p99Duration": 40810
}
]
},
"timestamps": {
"start": "2025-12-15T15:13:47.964Z",
"end": "2025-12-15T15:14:30.282Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=10
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "10 consumers"
{
"scenario": "fairness-9t",
"description": "10 consumers",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 114.94252873563218,
"overallDuration": 23490,
"fairnessIndex": 0.9887990604258773,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 23004,
"avgItemsPerSecond": 13.041210224308816,
"avgBatchDuration": 21971,
"minBatchDuration": 19947,
"maxBatchDuration": 23004,
"p50Duration": 22962,
"p95Duration": 23004,
"p99Duration": 23004
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 22777,
"avgItemsPerSecond": 13.171181454976512,
"avgBatchDuration": 21004.666666666668,
"minBatchDuration": 18477,
"maxBatchDuration": 22775,
"p50Duration": 21762,
"p95Duration": 22775,
"p99Duration": 22775
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 21772,
"avgItemsPerSecond": 13.77916590115745,
"avgBatchDuration": 21014.666666666668,
"minBatchDuration": 19505,
"maxBatchDuration": 21772,
"p50Duration": 21767,
"p95Duration": 21772,
"p99Duration": 21772
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 22339,
"avgItemsPerSecond": 13.42942835399973,
"avgBatchDuration": 21297.333333333332,
"minBatchDuration": 20240,
"maxBatchDuration": 22339,
"p50Duration": 21313,
"p95Duration": 22339,
"p99Duration": 22339
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 22597,
"avgItemsPerSecond": 13.276098597158914,
"avgBatchDuration": 20592.333333333332,
"minBatchDuration": 17413,
"maxBatchDuration": 22597,
"p50Duration": 21767,
"p95Duration": 22597,
"p99Duration": 22597
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 21762,
"avgItemsPerSecond": 13.785497656465399,
"avgBatchDuration": 21700,
"minBatchDuration": 21578,
"maxBatchDuration": 21762,
"p50Duration": 21760,
"p95Duration": 21762,
"p99Duration": 21762
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 22275,
"avgItemsPerSecond": 13.468013468013467,
"avgBatchDuration": 22239.333333333332,
"minBatchDuration": 22218,
"maxBatchDuration": 22275,
"p50Duration": 22225,
"p95Duration": 22275,
"p99Duration": 22275
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 16719,
"avgItemsPerSecond": 17.94365691727974,
"avgBatchDuration": 15697,
"minBatchDuration": 13656,
"maxBatchDuration": 16719,
"p50Duration": 16716,
"p95Duration": 16719,
"p99Duration": 16719
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 23387,
"avgItemsPerSecond": 12.827639286783254,
"avgBatchDuration": 23160.333333333332,
"minBatchDuration": 22770,
"maxBatchDuration": 23387,
"p50Duration": 23324,
"p95Duration": 23387,
"p99Duration": 23387
}
]
},
"timestamps": {
"start": "2025-12-15T15:16:28.939Z",
"end": "2025-12-15T15:16:52.429Z"
}
}
Observations:
Objective: Test polling frequency impact on throughput and latency.
Theory:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_QUEUE_CONSUMER_INTERVAL_MS=20
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Fast polling 20ms"
{
"scenario": "fairness-9t",
"description": "Fast polling 20ms",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 70.23019898556379,
"overallDuration": 38445,
"fairnessIndex": 0.9979118686098942,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 38383,
"avgItemsPerSecond": 7.815960190709429,
"avgBatchDuration": 32665.333333333332,
"minBatchDuration": 28219,
"maxBatchDuration": 38381,
"p50Duration": 31396,
"p95Duration": 38381,
"p99Duration": 38381
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 37376,
"avgItemsPerSecond": 8.026541095890412,
"avgBatchDuration": 37178.333333333336,
"minBatchDuration": 36801,
"maxBatchDuration": 37376,
"p50Duration": 37358,
"p95Duration": 37376,
"p99Duration": 37376
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 37361,
"avgItemsPerSecond": 8.029763657289687,
"avgBatchDuration": 29490.666666666668,
"minBatchDuration": 23952,
"maxBatchDuration": 37361,
"p50Duration": 27159,
"p95Duration": 37361,
"p99Duration": 37361
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 37997,
"avgItemsPerSecond": 7.895360160012633,
"avgBatchDuration": 36532,
"minBatchDuration": 34226,
"maxBatchDuration": 37994,
"p50Duration": 37376,
"p95Duration": 37994,
"p99Duration": 37994
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 37889,
"avgItemsPerSecond": 7.917865343503392,
"avgBatchDuration": 36989,
"minBatchDuration": 35364,
"maxBatchDuration": 37867,
"p50Duration": 37736,
"p95Duration": 37867,
"p99Duration": 37867
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 37359,
"avgItemsPerSecond": 8.030193527664016,
"avgBatchDuration": 36533.666666666664,
"minBatchDuration": 35927,
"maxBatchDuration": 37357,
"p50Duration": 36317,
"p95Duration": 37357,
"p99Duration": 37357
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 38245,
"avgItemsPerSecond": 7.844162635638646,
"avgBatchDuration": 34851.333333333336,
"minBatchDuration": 28081,
"maxBatchDuration": 38237,
"p50Duration": 38236,
"p95Duration": 38237,
"p99Duration": 38237
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 38090,
"avgItemsPerSecond": 7.876082961407193,
"avgBatchDuration": 36777.666666666664,
"minBatchDuration": 34984,
"maxBatchDuration": 38019,
"p50Duration": 37330,
"p95Duration": 38019,
"p99Duration": 38019
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 33054,
"avgItemsPerSecond": 9.076057360682519,
"avgBatchDuration": 24749.666666666668,
"minBatchDuration": 17350,
"maxBatchDuration": 33048,
"p50Duration": 23851,
"p95Duration": 33048,
"p99Duration": 33048
}
]
},
"timestamps": {
"start": "2025-12-15T15:18:51.094Z",
"end": "2025-12-15T15:19:29.539Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_QUEUE_CONSUMER_INTERVAL_MS=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Medium polling 50ms"
{
"scenario": "fairness-9t",
"description": "Medium polling 50ms",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 93.56806210146937,
"overallDuration": 28856,
"fairnessIndex": 0.9994094367115308,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28584,
"avgItemsPerSecond": 10.495382031905962,
"avgBatchDuration": 26949,
"minBatchDuration": 25606,
"maxBatchDuration": 28582,
"p50Duration": 26659,
"p95Duration": 28582,
"p99Duration": 28582
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28733,
"avgItemsPerSecond": 10.440956391605472,
"avgBatchDuration": 28390,
"minBatchDuration": 27709,
"maxBatchDuration": 28732,
"p50Duration": 28729,
"p95Duration": 28732,
"p99Duration": 28732
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 26660,
"avgItemsPerSecond": 11.252813203300825,
"avgBatchDuration": 24539,
"minBatchDuration": 20303,
"maxBatchDuration": 26660,
"p50Duration": 26654,
"p95Duration": 26660,
"p99Duration": 26660
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28729,
"avgItemsPerSecond": 10.442410108252986,
"avgBatchDuration": 28355.333333333332,
"minBatchDuration": 27708,
"maxBatchDuration": 28727,
"p50Duration": 28631,
"p95Duration": 28727,
"p99Duration": 28727
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28732,
"avgItemsPerSecond": 10.44131978282055,
"avgBatchDuration": 23195.666666666668,
"minBatchDuration": 13149,
"maxBatchDuration": 28729,
"p50Duration": 27709,
"p95Duration": 28729,
"p99Duration": 28729
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28683,
"avgItemsPerSecond": 10.459156991946449,
"avgBatchDuration": 28325,
"minBatchDuration": 27667,
"maxBatchDuration": 28680,
"p50Duration": 28628,
"p95Duration": 28680,
"p99Duration": 28680
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28728,
"avgItemsPerSecond": 10.442773600668337,
"avgBatchDuration": 28049,
"minBatchDuration": 26791,
"maxBatchDuration": 28728,
"p50Duration": 28628,
"p95Duration": 28728,
"p99Duration": 28728
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28829,
"avgItemsPerSecond": 10.406188213257483,
"avgBatchDuration": 28452.666666666668,
"minBatchDuration": 27805,
"maxBatchDuration": 28829,
"p50Duration": 28724,
"p95Duration": 28829,
"p99Duration": 28829
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28824,
"avgItemsPerSecond": 10.407993338884264,
"avgBatchDuration": 28786.666666666668,
"minBatchDuration": 28727,
"maxBatchDuration": 28817,
"p50Duration": 28816,
"p95Duration": 28817,
"p99Duration": 28817
}
]
},
"timestamps": {
"start": "2025-12-15T15:20:41.913Z",
"end": "2025-12-15T15:21:10.769Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_QUEUE_CONSUMER_INTERVAL_MS=100
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Default polling 100ms"
{
"scenario": "fairness-9t",
"description": "Default polling 100ms",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 86.52182272639877,
"overallDuration": 31206,
"fairnessIndex": 0.9996560386487722,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31119,
"avgItemsPerSecond": 9.640412609659693,
"avgBatchDuration": 24846,
"minBatchDuration": 12442,
"maxBatchDuration": 31116,
"p50Duration": 30980,
"p95Duration": 31116,
"p99Duration": 31116
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30083,
"avgItemsPerSecond": 9.972409666589103,
"avgBatchDuration": 28193.666666666668,
"minBatchDuration": 24794,
"maxBatchDuration": 30082,
"p50Duration": 29705,
"p95Duration": 30082,
"p99Duration": 30082
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30774,
"avgItemsPerSecond": 9.748488984207448,
"avgBatchDuration": 28711.333333333332,
"minBatchDuration": 26655,
"maxBatchDuration": 30774,
"p50Duration": 28705,
"p95Duration": 30774,
"p99Duration": 30774
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29722,
"avgItemsPerSecond": 10.093533409595585,
"avgBatchDuration": 29380.666666666668,
"minBatchDuration": 28699,
"maxBatchDuration": 29722,
"p50Duration": 29721,
"p95Duration": 29722,
"p99Duration": 29722
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30761,
"avgItemsPerSecond": 9.752608822860115,
"avgBatchDuration": 28703,
"minBatchDuration": 27637,
"maxBatchDuration": 30759,
"p50Duration": 27713,
"p95Duration": 30759,
"p99Duration": 30759
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29721,
"avgItemsPerSecond": 10.093873019077419,
"avgBatchDuration": 29032.333333333332,
"minBatchDuration": 27674,
"maxBatchDuration": 29719,
"p50Duration": 29704,
"p95Duration": 29719,
"p99Duration": 29719
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30089,
"avgItemsPerSecond": 9.97042108411712,
"avgBatchDuration": 23863.666666666668,
"minBatchDuration": 12440,
"maxBatchDuration": 30087,
"p50Duration": 29064,
"p95Duration": 30087,
"p99Duration": 30087
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29704,
"avgItemsPerSecond": 10.099649878804202,
"avgBatchDuration": 23475,
"minBatchDuration": 20361,
"maxBatchDuration": 29701,
"p50Duration": 20363,
"p95Duration": 29701,
"p99Duration": 29701
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31114,
"avgItemsPerSecond": 9.641961817831202,
"avgBatchDuration": 30969.333333333332,
"minBatchDuration": 30943,
"maxBatchDuration": 30984,
"p50Duration": 30981,
"p95Duration": 30984,
"p99Duration": 30984
}
]
},
"timestamps": {
"start": "2025-12-15T15:22:27.627Z",
"end": "2025-12-15T15:22:58.833Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_QUEUE_CONSUMER_INTERVAL_MS=250
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Slow polling 250ms"
{
"scenario": "fairness-9t",
"description": "Slow polling 250ms",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 47.45583970471922,
"overallDuration": 56895,
"fairnessIndex": 0.9993684226112225,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 56835,
"avgItemsPerSecond": 5.278437582475587,
"avgBatchDuration": 56487.666666666664,
"minBatchDuration": 56107,
"maxBatchDuration": 56835,
"p50Duration": 56521,
"p95Duration": 56835,
"p99Duration": 56835
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 56711,
"avgItemsPerSecond": 5.289979016416568,
"avgBatchDuration": 48760.666666666664,
"minBatchDuration": 34046,
"maxBatchDuration": 56710,
"p50Duration": 55526,
"p95Duration": 56710,
"p99Duration": 56710
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 55715,
"avgItemsPerSecond": 5.384546351969847,
"avgBatchDuration": 55026.666666666664,
"minBatchDuration": 54680,
"maxBatchDuration": 55715,
"p50Duration": 54685,
"p95Duration": 55715,
"p99Duration": 55715
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 56114,
"avgItemsPerSecond": 5.346259400506113,
"avgBatchDuration": 47434,
"minBatchDuration": 42815,
"maxBatchDuration": 56109,
"p50Duration": 43378,
"p95Duration": 56109,
"p99Duration": 56109
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 52049,
"avgItemsPerSecond": 5.763799496628177,
"avgBatchDuration": 51173,
"minBatchDuration": 49551,
"maxBatchDuration": 52046,
"p50Duration": 51922,
"p95Duration": 52046,
"p99Duration": 52046
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 55787,
"avgItemsPerSecond": 5.377596931184685,
"avgBatchDuration": 55069.666666666664,
"minBatchDuration": 53713,
"maxBatchDuration": 55787,
"p50Duration": 55709,
"p95Duration": 55787,
"p99Duration": 55787
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 55790,
"avgItemsPerSecond": 5.377307761247535,
"avgBatchDuration": 47576,
"minBatchDuration": 31153,
"maxBatchDuration": 55788,
"p50Duration": 55787,
"p95Duration": 55788,
"p99Duration": 55788
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 56010,
"avgItemsPerSecond": 5.356186395286556,
"avgBatchDuration": 47534.333333333336,
"minBatchDuration": 30885,
"maxBatchDuration": 56010,
"p50Duration": 55708,
"p95Duration": 56010,
"p99Duration": 56010
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 55784,
"avgItemsPerSecond": 5.377886132224293,
"avgBatchDuration": 55374.333333333336,
"minBatchDuration": 54732,
"maxBatchDuration": 55784,
"p50Duration": 55607,
"p95Duration": 55784,
"p99Duration": 55784
}
]
},
"timestamps": {
"start": "2025-12-15T15:24:13.441Z",
"end": "2025-12-15T15:25:10.336Z"
}
}
Observations:
Objective: Test per-environment processing concurrency limits.
Theory:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=2
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Low concurrency=2"
{
"scenario": "fairness-9t",
"description": "Low concurrency=2",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 90.7288551362613,
"overallDuration": 29759,
"fairnessIndex": 0.9931064638844554,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28794,
"avgItemsPerSecond": 10.418837257762034,
"avgBatchDuration": 27016,
"minBatchDuration": 23890,
"maxBatchDuration": 28794,
"p50Duration": 28364,
"p95Duration": 28794,
"p99Duration": 28794
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29532,
"avgItemsPerSecond": 10.158472165786264,
"avgBatchDuration": 27720,
"minBatchDuration": 26284,
"maxBatchDuration": 29529,
"p50Duration": 27347,
"p95Duration": 29529,
"p99Duration": 29529
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29439,
"avgItemsPerSecond": 10.19056353816366,
"avgBatchDuration": 22083.333333333332,
"minBatchDuration": 10765,
"maxBatchDuration": 29423,
"p50Duration": 26062,
"p95Duration": 29423,
"p99Duration": 29423
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29529,
"avgItemsPerSecond": 10.15950421619425,
"avgBatchDuration": 22252.666666666668,
"minBatchDuration": 17683,
"maxBatchDuration": 29396,
"p50Duration": 19679,
"p95Duration": 29396,
"p99Duration": 29396
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28474,
"avgItemsPerSecond": 10.535927512818711,
"avgBatchDuration": 26113.666666666668,
"minBatchDuration": 24815,
"maxBatchDuration": 28474,
"p50Duration": 25052,
"p95Duration": 28474,
"p99Duration": 28474
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 22890,
"avgItemsPerSecond": 13.10615989515072,
"avgBatchDuration": 22201.666666666668,
"minBatchDuration": 20834,
"maxBatchDuration": 22887,
"p50Duration": 22884,
"p95Duration": 22887,
"p99Duration": 22887
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 27952,
"avgItemsPerSecond": 10.732684602175159,
"avgBatchDuration": 21568.333333333332,
"minBatchDuration": 18289,
"maxBatchDuration": 27826,
"p50Duration": 18590,
"p95Duration": 27826,
"p99Duration": 27826
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28473,
"avgItemsPerSecond": 10.536297545042672,
"avgBatchDuration": 26193.333333333332,
"minBatchDuration": 25054,
"maxBatchDuration": 28470,
"p50Duration": 25056,
"p95Duration": 28470,
"p99Duration": 28470
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29668,
"avgItemsPerSecond": 10.111905082917621,
"avgBatchDuration": 28195.666666666668,
"minBatchDuration": 25936,
"maxBatchDuration": 29562,
"p50Duration": 29089,
"p95Duration": 29562,
"p99Duration": 29562
}
]
},
"timestamps": {
"start": "2025-12-15T15:27:02.038Z",
"end": "2025-12-15T15:27:31.797Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=5
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Medium concurrency=5"
{
"scenario": "fairness-9t",
"description": "Medium concurrency=5",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 58.25368400612742,
"overallDuration": 46349,
"fairnessIndex": 0.9998661349420435,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46278,
"avgItemsPerSecond": 6.482561908466226,
"avgBatchDuration": 45090,
"minBatchDuration": 43007,
"maxBatchDuration": 46275,
"p50Duration": 45988,
"p95Duration": 46275,
"p99Duration": 46275
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 45205,
"avgItemsPerSecond": 6.63643402278509,
"avgBatchDuration": 44818,
"minBatchDuration": 44147,
"maxBatchDuration": 45164,
"p50Duration": 45143,
"p95Duration": 45164,
"p99Duration": 45164
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 45206,
"avgItemsPerSecond": 6.636287218510818,
"avgBatchDuration": 44442,
"minBatchDuration": 43086,
"maxBatchDuration": 45206,
"p50Duration": 45034,
"p95Duration": 45206,
"p99Duration": 45206
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 45210,
"avgItemsPerSecond": 6.635700066357001,
"avgBatchDuration": 44481.666666666664,
"minBatchDuration": 43090,
"maxBatchDuration": 45210,
"p50Duration": 45145,
"p95Duration": 45210,
"p99Duration": 45210
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 45209,
"avgItemsPerSecond": 6.635846844654825,
"avgBatchDuration": 45130.333333333336,
"minBatchDuration": 44982,
"maxBatchDuration": 45207,
"p50Duration": 45202,
"p95Duration": 45207,
"p99Duration": 45207
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46279,
"avgItemsPerSecond": 6.482421832796733,
"avgBatchDuration": 45474,
"minBatchDuration": 44160,
"maxBatchDuration": 46277,
"p50Duration": 45985,
"p95Duration": 46277,
"p99Duration": 46277
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 45209,
"avgItemsPerSecond": 6.635846844654825,
"avgBatchDuration": 44499.333333333336,
"minBatchDuration": 43086,
"maxBatchDuration": 45206,
"p50Duration": 45206,
"p95Duration": 45206,
"p99Duration": 45206
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46278,
"avgItemsPerSecond": 6.482561908466226,
"avgBatchDuration": 45212,
"minBatchDuration": 44153,
"maxBatchDuration": 46276,
"p50Duration": 45207,
"p95Duration": 46276,
"p99Duration": 46276
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 46262,
"avgItemsPerSecond": 6.484803942760797,
"avgBatchDuration": 44808,
"minBatchDuration": 42006,
"maxBatchDuration": 46209,
"p50Duration": 46209,
"p95Duration": 46209,
"p99Duration": 46209
}
]
},
"timestamps": {
"start": "2025-12-15T15:28:48.965Z",
"end": "2025-12-15T15:29:35.314Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Default concurrency=10"
{
"scenario": "fairness-9t",
"description": "Default concurrency=10",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 88.71073728479432,
"overallDuration": 30436,
"fairnessIndex": 0.9986319639223729,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29265,
"avgItemsPerSecond": 10.251153254741158,
"avgBatchDuration": 22707.666666666668,
"minBatchDuration": 12771,
"maxBatchDuration": 29256,
"p50Duration": 26096,
"p95Duration": 29256,
"p99Duration": 29256
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30322,
"avgItemsPerSecond": 9.893806477145308,
"avgBatchDuration": 23069,
"minBatchDuration": 12719,
"maxBatchDuration": 30322,
"p50Duration": 26166,
"p95Duration": 30322,
"p99Duration": 30322
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29049,
"avgItemsPerSecond": 10.327377878756584,
"avgBatchDuration": 26282.333333333332,
"minBatchDuration": 21766,
"maxBatchDuration": 29041,
"p50Duration": 28040,
"p95Duration": 29041,
"p99Duration": 29041
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29051,
"avgItemsPerSecond": 10.326666896148154,
"avgBatchDuration": 22590.333333333332,
"minBatchDuration": 11757,
"maxBatchDuration": 29043,
"p50Duration": 26971,
"p95Duration": 29043,
"p99Duration": 29043
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30247,
"avgItemsPerSecond": 9.918339008827322,
"avgBatchDuration": 22704.333333333332,
"minBatchDuration": 12811,
"maxBatchDuration": 30217,
"p50Duration": 25085,
"p95Duration": 30217,
"p99Duration": 30217
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30216,
"avgItemsPerSecond": 9.928514694201748,
"avgBatchDuration": 23965.333333333332,
"minBatchDuration": 12747,
"maxBatchDuration": 30216,
"p50Duration": 28933,
"p95Duration": 30216,
"p99Duration": 30216
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29163,
"avgItemsPerSecond": 10.287007509515483,
"avgBatchDuration": 29106,
"minBatchDuration": 29005,
"maxBatchDuration": 29163,
"p50Duration": 29150,
"p95Duration": 29163,
"p99Duration": 29163
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 26728,
"avgItemsPerSecond": 11.224184375935348,
"avgBatchDuration": 24337.666666666668,
"minBatchDuration": 21607,
"maxBatchDuration": 26726,
"p50Duration": 24680,
"p95Duration": 26726,
"p99Duration": 26726
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29268,
"avgItemsPerSecond": 10.25010250102501,
"avgBatchDuration": 28511.333333333332,
"minBatchDuration": 27111,
"maxBatchDuration": 29268,
"p50Duration": 29155,
"p95Duration": 29268,
"p99Duration": 29268
}
]
},
"timestamps": {
"start": "2025-12-15T15:31:05.764Z",
"end": "2025-12-15T15:31:36.200Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=25
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "High concurrency=25"
{
"scenario": "fairness-9t",
"description": "High concurrency=25",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 92.11873080859776,
"overallDuration": 29310,
"fairnessIndex": 0.9985800387045317,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28196,
"avgItemsPerSecond": 10.63980706483189,
"avgBatchDuration": 21146.333333333332,
"minBatchDuration": 9134,
"maxBatchDuration": 28193,
"p50Duration": 26112,
"p95Duration": 28193,
"p99Duration": 28193
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 26122,
"avgItemsPerSecond": 11.484572391087971,
"avgBatchDuration": 24917.333333333332,
"minBatchDuration": 22512,
"maxBatchDuration": 26122,
"p50Duration": 26118,
"p95Duration": 26122,
"p99Duration": 26122
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 27157,
"avgItemsPerSecond": 11.046875575358102,
"avgBatchDuration": 20760.333333333332,
"minBatchDuration": 17529,
"maxBatchDuration": 27154,
"p50Duration": 17598,
"p95Duration": 27154,
"p99Duration": 27154
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29234,
"avgItemsPerSecond": 10.262023671067935,
"avgBatchDuration": 27852.666666666668,
"minBatchDuration": 27155,
"maxBatchDuration": 29232,
"p50Duration": 27171,
"p95Duration": 29232,
"p99Duration": 29232
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29230,
"avgItemsPerSecond": 10.263427984946972,
"avgBatchDuration": 28536,
"minBatchDuration": 27154,
"maxBatchDuration": 29230,
"p50Duration": 29224,
"p95Duration": 29230,
"p99Duration": 29230
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28199,
"avgItemsPerSecond": 10.63867513032377,
"avgBatchDuration": 28189.666666666668,
"minBatchDuration": 28179,
"maxBatchDuration": 28195,
"p50Duration": 28195,
"p95Duration": 28195,
"p99Duration": 28195
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29231,
"avgItemsPerSecond": 10.26307687044576,
"avgBatchDuration": 27848.333333333332,
"minBatchDuration": 27149,
"maxBatchDuration": 29231,
"p50Duration": 27165,
"p95Duration": 29231,
"p99Duration": 29231
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 28194,
"avgItemsPerSecond": 10.640561821664184,
"avgBatchDuration": 27132.666666666668,
"minBatchDuration": 26095,
"maxBatchDuration": 28190,
"p50Duration": 27113,
"p95Duration": 28190,
"p99Duration": 28190
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 29234,
"avgItemsPerSecond": 10.262023671067935,
"avgBatchDuration": 28871,
"minBatchDuration": 28201,
"maxBatchDuration": 29232,
"p50Duration": 29180,
"p95Duration": 29232,
"p99Duration": 29232
}
]
},
"timestamps": {
"start": "2025-12-15T15:32:57.803Z",
"end": "2025-12-15T15:33:27.113Z"
}
}
Observations:
Objective: Test global throughput caps across all consumers.
Theory:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
BATCH_QUEUE_GLOBAL_RATE_LIMIT=50
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Rate limit 50/sec"
{
"scenario": "fairness-9t",
"description": "Rate limit 50/sec",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 45.432364670447086,
"overallDuration": 59429,
"fairnessIndex": 0.9985621839167762,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 54093,
"avgItemsPerSecond": 5.546004104043037,
"avgBatchDuration": 54091,
"minBatchDuration": 54089,
"maxBatchDuration": 54093,
"p50Duration": 54091,
"p95Duration": 54093,
"p99Duration": 54093
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 54109,
"avgItemsPerSecond": 5.544364153837624,
"avgBatchDuration": 53601,
"minBatchDuration": 52695,
"maxBatchDuration": 54109,
"p50Duration": 53999,
"p95Duration": 54109,
"p99Duration": 54109
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 59343,
"avgItemsPerSecond": 5.055356149840756,
"avgBatchDuration": 57304.333333333336,
"minBatchDuration": 55866,
"maxBatchDuration": 59029,
"p50Duration": 57018,
"p95Duration": 59029,
"p99Duration": 59029
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 58371,
"avgItemsPerSecond": 5.139538469445443,
"avgBatchDuration": 57164.333333333336,
"minBatchDuration": 56262,
"maxBatchDuration": 58093,
"p50Duration": 57138,
"p95Duration": 58093,
"p99Duration": 58093
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 58285,
"avgItemsPerSecond": 5.147121901003689,
"avgBatchDuration": 55634.333333333336,
"minBatchDuration": 50470,
"maxBatchDuration": 58284,
"p50Duration": 58149,
"p95Duration": 58284,
"p99Duration": 58284
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 55174,
"avgItemsPerSecond": 5.437343676369304,
"avgBatchDuration": 41686.333333333336,
"minBatchDuration": 28166,
"maxBatchDuration": 55157,
"p50Duration": 41736,
"p95Duration": 55157,
"p99Duration": 55157
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 58284,
"avgItemsPerSecond": 5.147210212065061,
"avgBatchDuration": 57015.666666666664,
"minBatchDuration": 54788,
"maxBatchDuration": 58246,
"p50Duration": 58013,
"p95Duration": 58246,
"p99Duration": 58246
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 59296,
"avgItemsPerSecond": 5.059363194819212,
"avgBatchDuration": 58258.666666666664,
"minBatchDuration": 57226,
"maxBatchDuration": 59291,
"p50Duration": 58259,
"p95Duration": 59291,
"p99Duration": 59291
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 59408,
"avgItemsPerSecond": 5.049824939402101,
"avgBatchDuration": 58836.333333333336,
"minBatchDuration": 58371,
"maxBatchDuration": 59107,
"p50Duration": 59031,
"p95Duration": 59107,
"p99Duration": 59107
}
]
},
"timestamps": {
"start": "2025-12-15T15:35:48.593Z",
"end": "2025-12-15T15:36:48.022Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
BATCH_QUEUE_GLOBAL_RATE_LIMIT=100
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Rate limit 100/sec"
{
"scenario": "fairness-9t",
"description": "Rate limit 100/sec",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 81.93487694595333,
"overallDuration": 32953,
"fairnessIndex": 0.9994851661042276,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31984,
"avgItemsPerSecond": 9.379689844922462,
"avgBatchDuration": 30240.333333333332,
"minBatchDuration": 28799,
"maxBatchDuration": 31980,
"p50Duration": 29942,
"p95Duration": 31980,
"p99Duration": 31980
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31947,
"avgItemsPerSecond": 9.3905531035778,
"avgBatchDuration": 26446,
"minBatchDuration": 23696,
"maxBatchDuration": 31945,
"p50Duration": 23697,
"p95Duration": 31945,
"p99Duration": 31945
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 32914,
"avgItemsPerSecond": 9.114662453667133,
"avgBatchDuration": 31870.666666666668,
"minBatchDuration": 29821,
"maxBatchDuration": 32912,
"p50Duration": 32879,
"p95Duration": 32912,
"p99Duration": 32912
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30770,
"avgItemsPerSecond": 9.749756256093598,
"avgBatchDuration": 26862,
"minBatchDuration": 22381,
"maxBatchDuration": 30768,
"p50Duration": 27437,
"p95Duration": 30768,
"p99Duration": 30768
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30770,
"avgItemsPerSecond": 9.749756256093598,
"avgBatchDuration": 29516.666666666668,
"minBatchDuration": 27853,
"maxBatchDuration": 30769,
"p50Duration": 29928,
"p95Duration": 30769,
"p99Duration": 30769
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30771,
"avgItemsPerSecond": 9.749439407234084,
"avgBatchDuration": 28237.333333333332,
"minBatchDuration": 25781,
"maxBatchDuration": 30769,
"p50Duration": 28162,
"p95Duration": 30769,
"p99Duration": 30769
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31890,
"avgItemsPerSecond": 9.40733772342427,
"avgBatchDuration": 23515.666666666668,
"minBatchDuration": 18184,
"maxBatchDuration": 31888,
"p50Duration": 20475,
"p95Duration": 31888,
"p99Duration": 31888
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 30956,
"avgItemsPerSecond": 9.691174570357928,
"avgBatchDuration": 28886,
"minBatchDuration": 25781,
"maxBatchDuration": 30947,
"p50Duration": 29930,
"p95Duration": 30947,
"p99Duration": 30947
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 31976,
"avgItemsPerSecond": 9.382036527395547,
"avgBatchDuration": 29608.666666666668,
"minBatchDuration": 26943,
"maxBatchDuration": 31974,
"p50Duration": 29909,
"p95Duration": 31974,
"p99Duration": 31974
}
]
},
"timestamps": {
"start": "2025-12-15T15:37:49.150Z",
"end": "2025-12-15T15:38:22.103Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
BATCH_QUEUE_GLOBAL_RATE_LIMIT=20
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Rate limit 20/sec"
{
"scenario": "fairness-9t",
"description": "Rate limit 20/sec",
"config": {
"tenantCount": 9,
"batchSize": 100,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 2700,
"totalBatches": 27,
"overallThroughput": 21.692671090900326,
"overallDuration": 124466,
"fairnessIndex": 0.997793763355806,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 108861,
"avgItemsPerSecond": 2.755807865075647,
"avgBatchDuration": 99844,
"minBatchDuration": 93281,
"maxBatchDuration": 108850,
"p50Duration": 97401,
"p95Duration": 108850,
"p99Duration": 108850
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 111633,
"avgItemsPerSecond": 2.687377388406654,
"avgBatchDuration": 85438,
"minBatchDuration": 71861,
"maxBatchDuration": 111516,
"p50Duration": 72937,
"p95Duration": 111516,
"p99Duration": 111516
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 123298,
"avgItemsPerSecond": 2.433129491151519,
"avgBatchDuration": 96355,
"minBatchDuration": 43494,
"maxBatchDuration": 123297,
"p50Duration": 122274,
"p95Duration": 123297,
"p99Duration": 123297
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 121568,
"avgItemsPerSecond": 2.4677546722821795,
"avgBatchDuration": 92002,
"minBatchDuration": 53253,
"maxBatchDuration": 121568,
"p50Duration": 101185,
"p95Duration": 121568,
"p99Duration": 121568
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 123851,
"avgItemsPerSecond": 2.422265464146434,
"avgBatchDuration": 118623.66666666667,
"minBatchDuration": 111599,
"maxBatchDuration": 123784,
"p50Duration": 120488,
"p95Duration": 123784,
"p99Duration": 123784
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 120270,
"avgItemsPerSecond": 2.4943876278373662,
"avgBatchDuration": 113171.33333333333,
"minBatchDuration": 109360,
"maxBatchDuration": 120269,
"p50Duration": 109885,
"p95Duration": 120269,
"p99Duration": 120269
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 123169,
"avgItemsPerSecond": 2.4356778085394866,
"avgBatchDuration": 118514,
"minBatchDuration": 113405,
"maxBatchDuration": 123164,
"p50Duration": 118973,
"p95Duration": 123164,
"p99Duration": 123164
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 124246,
"avgItemsPerSecond": 2.414564653992885,
"avgBatchDuration": 119631.33333333333,
"minBatchDuration": 114504,
"maxBatchDuration": 124241,
"p50Duration": 120149,
"p95Duration": 124241,
"p99Duration": 124241
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 300,
"totalBatches": 3,
"totalDuration": 122197,
"avgItemsPerSecond": 2.4550520880218007,
"avgBatchDuration": 120645.33333333333,
"minBatchDuration": 118022,
"maxBatchDuration": 122197,
"p50Duration": 121717,
"p95Duration": 122197,
"p99Duration": 122197
}
]
},
"timestamps": {
"start": "2025-12-15T15:39:42.414Z",
"end": "2025-12-15T15:41:46.880Z"
}
}
Observations:
Objective: Test fairness when tenants have dramatically different workloads.
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress asymmetric --small-size 50 --large-size 800 --batch-count 3 -d "Asymmetric baseline"
{
"scenario": "asymmetric-combined",
"config": {
"tenantCount": 9,
"batchSize": 0,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 10350,
"totalBatches": 27,
"overallThroughput": 67.60816590394816,
"overallDuration": 107281,
"fairnessIndex": 0.9978993490004432,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 16361,
"avgItemsPerSecond": 9.168143756494102,
"avgBatchDuration": 14312.666666666666,
"minBatchDuration": 12271,
"maxBatchDuration": 16360,
"p50Duration": 14307,
"p95Duration": 16360,
"p99Duration": 16360
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 16361,
"avgItemsPerSecond": 9.168143756494102,
"avgBatchDuration": 13968.333333333334,
"minBatchDuration": 11240,
"maxBatchDuration": 16358,
"p50Duration": 14307,
"p95Duration": 16358,
"p99Duration": 16358
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 16361,
"avgItemsPerSecond": 9.168143756494102,
"avgBatchDuration": 12117.333333333334,
"minBatchDuration": 8977,
"maxBatchDuration": 16359,
"p50Duration": 11016,
"p95Duration": 16359,
"p99Duration": 16359
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 13966,
"avgItemsPerSecond": 10.740369468709723,
"avgBatchDuration": 13624.333333333334,
"minBatchDuration": 12945,
"maxBatchDuration": 13964,
"p50Duration": 13964,
"p95Duration": 13964,
"p99Duration": 13964
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 16116,
"avgItemsPerSecond": 9.307520476545047,
"avgBatchDuration": 14416.666666666666,
"minBatchDuration": 11021,
"maxBatchDuration": 16116,
"p50Duration": 16113,
"p95Duration": 16116,
"p99Duration": 16116
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 107273,
"avgItemsPerSecond": 22.37282447586998,
"avgBatchDuration": 106213,
"minBatchDuration": 105126,
"maxBatchDuration": 107273,
"p50Duration": 106240,
"p95Duration": 107273,
"p99Duration": 107273
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 106584,
"avgItemsPerSecond": 22.51745102454402,
"avgBatchDuration": 105934,
"minBatchDuration": 105097,
"maxBatchDuration": 106574,
"p50Duration": 106131,
"p95Duration": 106574,
"p99Duration": 106574
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 107116,
"avgItemsPerSecond": 22.40561634116285,
"avgBatchDuration": 106374.33333333333,
"minBatchDuration": 105308,
"maxBatchDuration": 107100,
"p50Duration": 106715,
"p95Duration": 107100,
"p99Duration": 107100
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 107046,
"avgItemsPerSecond": 22.42026792220167,
"avgBatchDuration": 104503.66666666667,
"minBatchDuration": 102401,
"maxBatchDuration": 106989,
"p50Duration": 104121,
"p95Duration": 106989,
"p99Duration": 106989
}
]
},
"timestamps": {
"start": "2025-12-15T15:44:50.480Z",
"end": "2025-12-15T15:46:37.770Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=2
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress asymmetric --small-size 50 --large-size 800 --batch-count 3 -d "Asymmetric low quantum"
{
"scenario": "asymmetric-combined",
"config": {
"tenantCount": 9,
"batchSize": 0,
"batchCount": 3
},
"results": {
"totalItemsProcessed": 10350,
"totalBatches": 27,
"overallThroughput": 58.418499446364066,
"overallDuration": 127189,
"fairnessIndex": 0.9991864215649569,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 16648,
"avgItemsPerSecond": 9.01009130225853,
"avgBatchDuration": 15360,
"minBatchDuration": 14080,
"maxBatchDuration": 16647,
"p50Duration": 15353,
"p95Duration": 16647,
"p99Duration": 16647
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 18118,
"avgItemsPerSecond": 8.279059498840931,
"avgBatchDuration": 16403.333333333332,
"minBatchDuration": 15020,
"maxBatchDuration": 18115,
"p50Duration": 16075,
"p95Duration": 18115,
"p99Duration": 18115
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 16307,
"avgItemsPerSecond": 9.198503710063163,
"avgBatchDuration": 15531.333333333334,
"minBatchDuration": 14206,
"maxBatchDuration": 16305,
"p50Duration": 16083,
"p95Duration": 16305,
"p99Duration": 16305
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 16646,
"avgItemsPerSecond": 9.011173855580921,
"avgBatchDuration": 14090,
"minBatchDuration": 11256,
"maxBatchDuration": 16645,
"p50Duration": 14369,
"p95Duration": 16645,
"p99Duration": 16645
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 150,
"totalBatches": 3,
"totalDuration": 17696,
"avgItemsPerSecond": 8.476491862567812,
"avgBatchDuration": 16322,
"minBatchDuration": 14600,
"maxBatchDuration": 17694,
"p50Duration": 16672,
"p95Duration": 17694,
"p99Duration": 17694
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 125841,
"avgItemsPerSecond": 19.07168569861969,
"avgBatchDuration": 125238.66666666667,
"minBatchDuration": 124354,
"maxBatchDuration": 125800,
"p50Duration": 125562,
"p95Duration": 125800,
"p99Duration": 125800
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 127140,
"avgItemsPerSecond": 18.876828692779615,
"avgBatchDuration": 126407.66666666667,
"minBatchDuration": 125398,
"maxBatchDuration": 127140,
"p50Duration": 126685,
"p95Duration": 127140,
"p99Duration": 127140
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 125854,
"avgItemsPerSecond": 19.069715702321737,
"avgBatchDuration": 125322.66666666667,
"minBatchDuration": 124426,
"maxBatchDuration": 125849,
"p50Duration": 125693,
"p95Duration": 125849,
"p99Duration": 125849
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 2400,
"totalBatches": 3,
"totalDuration": 126467,
"avgItemsPerSecond": 18.977282611274088,
"avgBatchDuration": 124552.33333333333,
"minBatchDuration": 123402,
"maxBatchDuration": 126202,
"p50Duration": 124053,
"p95Duration": 126202,
"p99Duration": 126202
}
]
},
"timestamps": {
"start": "2025-12-15T15:50:21.351Z",
"end": "2025-12-15T15:52:28.745Z"
}
}
Observations:
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress burst --batch-size 500 -d "Burst test baseline"
{
"scenario": "burst-9t-500i",
"config": {
"tenantCount": 9,
"batchSize": 500,
"batchCount": 1
},
"results": {
"totalItemsProcessed": 4500,
"totalBatches": 9,
"overallThroughput": 68.83786388459714,
"overallDuration": 65371,
"fairnessIndex": 0.9999479889573228,
"perTenant": [
{
"tenantId": "org-1:proj_czimyjnqtbskjmvimpwh",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 64508,
"avgItemsPerSecond": 7.750976623054505,
"avgBatchDuration": 64508,
"minBatchDuration": 64508,
"maxBatchDuration": 64508,
"p50Duration": 64508,
"p95Duration": 64508,
"p99Duration": 64508
},
{
"tenantId": "org-1:proj_lvfvbfatttkmiocyaojf",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 64504,
"avgItemsPerSecond": 7.751457273967506,
"avgBatchDuration": 64504,
"minBatchDuration": 64504,
"maxBatchDuration": 64504,
"p50Duration": 64504,
"p95Duration": 64504,
"p99Duration": 64504
},
{
"tenantId": "org-1:proj_pogdfmagzpxpjggpwrlj",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 64404,
"avgItemsPerSecond": 7.7634929507484,
"avgBatchDuration": 64404,
"minBatchDuration": 64404,
"maxBatchDuration": 64404,
"p50Duration": 64404,
"p95Duration": 64404,
"p99Duration": 64404
},
{
"tenantId": "org-2:proj_prxnkqpzdapktltqmxhb",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 64504,
"avgItemsPerSecond": 7.751457273967506,
"avgBatchDuration": 64504,
"minBatchDuration": 64504,
"maxBatchDuration": 64504,
"p50Duration": 64504,
"p95Duration": 64504,
"p99Duration": 64504
},
{
"tenantId": "org-2:proj_zgysghtkiezoakvjscin",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 64507,
"avgItemsPerSecond": 7.7510967801943975,
"avgBatchDuration": 64507,
"minBatchDuration": 64507,
"maxBatchDuration": 64507,
"p50Duration": 64507,
"p95Duration": 64507,
"p99Duration": 64507
},
{
"tenantId": "org-2:proj_giomqjmqmqbcngusxqfo",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 64391,
"avgItemsPerSecond": 7.7650603345187985,
"avgBatchDuration": 64391,
"minBatchDuration": 64391,
"maxBatchDuration": 64391,
"p50Duration": 64391,
"p95Duration": 64391,
"p99Duration": 64391
},
{
"tenantId": "org-3:proj_qopvqsgghjbtrrfcwlqs",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 63375,
"avgItemsPerSecond": 7.889546351084813,
"avgBatchDuration": 63375,
"minBatchDuration": 63375,
"maxBatchDuration": 63375,
"p50Duration": 63375,
"p95Duration": 63375,
"p99Duration": 63375
},
{
"tenantId": "org-3:proj_efaelbvnogkhjnrdfsmi",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 64497,
"avgItemsPerSecond": 7.752298556522009,
"avgBatchDuration": 64497,
"minBatchDuration": 64497,
"maxBatchDuration": 64497,
"p50Duration": 64497,
"p95Duration": 64497,
"p99Duration": 64497
},
{
"tenantId": "org-3:proj_ytivyoceocenyxuprmga",
"totalItems": 500,
"totalBatches": 1,
"totalDuration": 65316,
"avgItemsPerSecond": 7.655092167309695,
"avgBatchDuration": 65316,
"minBatchDuration": 65316,
"maxBatchDuration": 65316,
"p50Duration": 65316,
"p95Duration": 65316,
"p99Duration": 65316
}
]
},
"timestamps": {
"start": "2025-12-15T15:53:49.834Z",
"end": "2025-12-15T15:54:55.205Z"
}
}
Observations:
Objective: Test promising combinations based on earlier results.
Based on Series B-F results, configure for maximum throughput.
Configuration (adjust based on findings):
BATCH_QUEUE_DRR_QUANTUM=10
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=5
BATCH_QUEUE_CONSUMER_INTERVAL_MS=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=25
Command:
pnpm stress fairness --batch-size 100 --batch-count 5 --tenants all -d "Throughput optimized"
// Paste results here
Observations:
Based on Series B-F results, configure for best fairness.
Configuration (adjust based on findings):
BATCH_QUEUE_DRR_QUANTUM=2
BATCH_QUEUE_MAX_DEFICIT=25
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_QUEUE_CONSUMER_INTERVAL_MS=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=5
Command:
pnpm stress fairness --batch-size 100 --batch-count 5 --tenants all -d "Fairness optimized"
// Paste results here
Observations:
Best balance of throughput and fairness.
Configuration (adjust based on findings):
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_QUEUE_CONSUMER_INTERVAL_MS=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10
Command:
pnpm stress fairness --batch-size 100 --batch-count 5 --tenants all -d "Balanced configuration"
// Paste results here
Observations:
If time permits, test different concurrency limits per organization by updating the database.
-- Set org-1 to high concurrency (50)
UPDATE "Organization"
SET "batchQueueConcurrencyConfig" = '{"default": 50}'
WHERE slug = 'org-1';
-- Set org-2 to medium concurrency (10)
UPDATE "Organization"
SET "batchQueueConcurrencyConfig" = '{"default": 10}'
WHERE slug = 'org-2';
-- Set org-3 to low concurrency (2)
UPDATE "Organization"
SET "batchQueueConcurrencyConfig" = '{"default": 2}'
WHERE slug = 'org-3';
Configuration:
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=50
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10 # fallback
Command:
pnpm stress fairness --batch-size 100 --batch-count 3 --tenants all -d "Mixed org concurrency"
// Paste results here
Observations:
| Test | Config Summary | Throughput (items/sec) | Fairness Index | Notes |
|---|---|---|---|---|
| A1 | Baseline | 54.52 | 0.9999 | Reference point |
| A2 | Throughput baseline | 97.48 (peak @ 500) | 1.0000 | Single tenant max |
| B1 | quantum=1 | 66.09 | 0.9997 | +21% vs baseline |
| B2 | quantum=10 | 64.69 | 0.9998 | +18% |
| B3 | quantum=25 | 84.36 | 0.9999 | Best B series |
| B4 | quantum=50 | 51.98 | 0.9997 | Too high, hurts perf |
| C1 | maxDeficit=10 | 52.51 | 0.9998 | Limited catch-up |
| C2 | maxDeficit=25 | 66.33 | 0.9992 | +22% |
| C3 | maxDeficit=100 | 73.74 | 0.9989 | Best C, slight fairness cost |
| D1 | consumers=1 | 41.33 | 0.9997 | Bottleneck |
| D2 | consumers=3 | 57.55 | 0.9992 | 1.39x vs D1 |
| D3 | consumers=5 | 63.80 | 0.9999 | Good balance |
| D4 | consumers=10 | 114.94 | 0.9888 | Best throughput, fairness cost |
| E1 | interval=20ms | 70.23 | 0.9979 | Contention overhead |
| E2 | interval=50ms | 93.57 | 0.9994 | Best E series |
| E3 | interval=100ms | 86.52 | 0.9997 | Good default |
| E4 | interval=250ms | 47.46 | 0.9994 | Too slow |
| F1 | concurrency=2 | 90.73 | 0.9931 | High but unfair |
| F2 | concurrency=5 | 58.25 | 0.9999 | Best fairness |
| F3 | concurrency=10 | 88.71 | 0.9986 | Good balance |
| F4 | concurrency=25 | 92.12 | 0.9986 | Best F series |
| F5 | concurrency=50 | not tested | not tested | |
| G1 | rateLimit=50 | 45.43 | 0.9986 | Effective throttle |
| G2 | rateLimit=100 | 81.93 | 0.9995 | Not binding |
| G3 | rateLimit=20 | 21.69 | 0.9978 | Strict throttle |
| H1 | asymmetric baseline | 67.61 | 0.9979 | Small batches not starved |
| H2 | asymmetric low quantum | 58.42 | 0.9992 | Better fairness, lower throughput |
| H3 | burst test | 68.84 | 0.9999 | Perfect burst fairness |
| I1 | throughput optimized | pending | pending | |
| I2 | fairness optimized | pending | pending | |
| I3 | balanced | pending | pending |
After each configuration change:
redis-cli FLUSHDBoverallThroughput) - Higher is better, all else equalfairnessIndex) - Closer to 1.0 is better| Configuration | Effect on Throughput | Effect on Fairness |
|---|---|---|
| Higher quantum (25) | ↑ Significant | → Neutral |
| Higher quantum (50) | ↓ Hurts | → Neutral |
| Higher maxDeficit | ↑ Moderate | ↓ Slight |
| More consumers | ↑↑ Major | ↓ Moderate (at 10) |
| Faster polling (50ms) | ↑ Best | → Neutral |
| Higher concurrency | ↑ Moderate | → Neutral |
Based on test results, the optimal balanced configuration is:
BATCH_QUEUE_DRR_QUANTUM=25 # Sweet spot from B series
BATCH_QUEUE_MAX_DEFICIT=50 # Default is fine (100 gains throughput but costs fairness)
BATCH_QUEUE_CONSUMER_COUNT=3 # Good balance (10 is faster but less fair)
BATCH_QUEUE_CONSUMER_INTERVAL_MS=50 # Best from E series
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=10 # Good balance from F series
Expected performance: ~90-100 items/sec with 0.999+ fairness
High-throughput priority (fairness acceptable at 0.98+):
BATCH_QUEUE_DRR_QUANTUM=25
BATCH_QUEUE_MAX_DEFICIT=100
BATCH_QUEUE_CONSUMER_COUNT=10
BATCH_QUEUE_CONSUMER_INTERVAL_MS=50
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=25
Strict fairness priority (throughput can be lower):
BATCH_QUEUE_DRR_QUANTUM=5
BATCH_QUEUE_MAX_DEFICIT=25
BATCH_QUEUE_CONSUMER_COUNT=3
BATCH_QUEUE_CONSUMER_INTERVAL_MS=100
BATCH_CONCURRENCY_DEFAULT_CONCURRENCY=5
quantum=1 outperformed quantum=10: Lower quantum didn't add expected overhead. May be due to better slot utilization.
quantum=50 was worst: Too much time between tenant switches caused overall slowdown.
concurrency=2 had high throughput but poor fairness: Some tenants finished much faster than others.
20ms polling was worse than 50ms: Too-fast polling created contention.
Diminishing returns start around 5 consumers, with fairness degradation at 10.
Document created: $(date) Last updated: