Investigate Python SDK concurrency limitations
@seherv arbeitet bereits daran.
Seit 28.4.2026.
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
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
- Benchmark current threadpool implementation — measure workflow throughput, activity concurrency, and sidecar acknowledgment latency under sustained load
- Document failure conditions — identify load thresholds at which sidecar response times begin to degrade
- Design asyncio execution model — propose the replacement architecture for workflow and activity dispatch
- Implement asyncio rewrite — replace threadpool-based execution with native asyncio in the workflow worker
- Ensure existing workflow and activity behavior is preserved
- Load validate — re-run benchmarks against the rewritten implementation under production-representative load and confirm improvement in sidecar response latency and throughput
- Document operational guidance — update SDK documentation with concurrency configuration recommendations for workflow-heavy deployments
- Write Dapr OSS blog on findings
- Vorherrschende Sprache
- Python
- Sterne
- 272
- Forks
- 152
- Ø Merge
- 1 T. 13 Std.
- Gemergte PRs (30 T.)
- 4
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus dapr/python-sdk
-
dapr-ext-workflow good first issue kind/enhancement P2
Schwierigkeit 2/5 1-2 Tage Anfängerfreundlichkeit 72/100
dapr/python-sdk#853 · 4 Kommentare ·
-
feature-request
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 76/100
dapr/python-sdk#1214 ·
-
dapr-ext-workflow kind/enhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 78/100
dapr/python-sdk#1213 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 76/100
dapr/python-sdk#1200 ·
-
dapr-ext-workflow kind/enhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
dapr/python-sdk#1188 ·
Alle Issues in dapr/python-sdk
Ähnliche Issues
-
bug confirmed issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
open-webui/open-webui#30750 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100