WorkManager pipeline benchmarks

These measure the real path a worker sees: a publisher sends CloudEvents to a topic, the API fans them out (Redis/Dapr), the Runtime enqueues them and calls the worker's actor turn, the worker returns a marker event, and a subscriber receives it. The worker is the same no-op marker used on the engine page, so anything measured here is the pipeline, not the worker's business logic.

Fixed rate

The publisher offers a known rate (for example 50 events/s) for a fixed window. This shows whether the pipeline keeps up at that load and how long an event takes end to end:

engineevents/svs medianp50 msp95 msp99 msdelivered/offeredhistory (events/s)status
text/x-csharp30.30—189.54966.221113.64303/303ok
text/x-python50.00—20.7954.56109.33500/500ok
text/x-typescript46.80—33.27382.44490.38468/468ok

Saturation

The publisher sends a batch of events as fast as it can (batched PublishEvents calls) and waits for all markers. This is the pipeline's ceiling for this deployment:

engineevents/svs mediandeliveredofferederrorspublish sdrain shistory (events/s)status
text/x-csharp9.90—1402200059821.6120.0ok
text/x-python123.42—20002000016.20.1ok
text/x-typescript14.65—19982000216.4120.0ok

The pipeline currently runs against the dedicated virtufin-benchmark namespace (api/workmanager/runtime, one replica each). Its replica count and Redis bound the result; that is the point of an isolated baseline, and the numbers are not comparable with the engine page.

History

text/x-csharp — fixed rate

dateevents/sp50 msp99 msdelivered/offerederrors
2026-11-11T03:35:5830.30189.541113.64303/3030

text/x-python — fixed rate

dateevents/sp50 msp99 msdelivered/offerederrors
2026-11-11T03:36:2850.0020.79109.33500/5000

text/x-typescript — fixed rate

dateevents/sp50 msp99 msdelivered/offerederrors
2026-11-11T03:38:5946.8033.27490.38468/4680