dapr / dapr/python-sdk

Investigate Python SDK concurrency limitations

Aperta
#975 3 commenti 3 reazioni 1 assegnatario Rivendicata da @seherv Vedi su GitHub
P1
Lingua principale
Python
Stelle
272
Fork
152
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

The Python Dapr SDK currently relies on threadpool-based execution for workflow and activity processing. This model has known limitations:

* The GIL (Global Interpreter Lock) constrains true parallelism for CPU-bound work
* Thread pool exhaustion under high concurrency can delay sidecar acknowledgments

Native asyncio execution would allow the SDK to handle a higher volume of concurrent workflow tasks without the overhead and contention introduced by thread management, reducing sidecar response latency under sustained load.

Goals

* Quantify the throughput and latency characteristics of the current threadpool implementation under sustained workflow load
* Rewrite workflow and activity execution to use native asyncio
* Validate that the rewrite improves sidecar response latency and throughput under load conditions

Tasks

- [X] Benchmark current threadpool implementation — measure workflow throughput, activity concurrency, and sidecar acknowledgment latency under sustained load
- [X] Document failure conditions — identify load thresholds at which sidecar response times begin to degrade
- [X] Design asyncio execution model — propose the replacement architecture for workflow and activity dispatch
- [X] Implement asyncio rewrite — replace threadpool-based execution with native asyncio in the workflow worker
- [X] Ensure existing workflow and activity behavior is preserved
- [X] Load validate — re-run benchmarks against the rewritten implementation under production-representative load and confirm improvement in sidecar response latency and throughput
- [X] Document operational guidance — update SDK documentation with concurrency configuration recommendations for workflow-heavy deployments
- [ ] Write Dapr OSS blog on findings

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.