Azure / Azure/durabletask

Early (compile-time) detection of non-determinism in orchestrators — maintainer perspective?

Aperta
#1,301 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C#
Stelle
1.7k
Fork
335
Merge medio
2g 23h
PR unite (30g)
6

Descrizione

Hi folks,

Non-determinism in Durable Task / Durable Functions orchestrators is a recurring pain point I’ve seen in production systems - especially cases that pass code review but later fail at runtime due to subtle issues (DateTime usage, async calls outside activities, hidden I/O, etc.).

To address this, I implemented a Roslyn-based static analyzer that inspects the orchestrator code at build time and flags common non-deterministic patterns before deployment.

I’m curious to sanity-check this approach with maintainers:
- Do you see value in earlier (compile-time) determinism detection vs. runtime-only safeguards?
- Are there known edge cases where static analysis could produce false confidence?
- Are there determinism pitfalls you see in the wild that tooling often misses?

I’m especially interested in whether this aligns with how you’ve seen customers
struggle with determinism in practice.

(For context: https://github.com/kokosda/dtf-determinism-analyzer)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia esaminando la descrizione nell’issue del determinismo di Durable Task orchestrator e il repository dell’analyzer basato su Roslyn collegato. Confronta i controlli dichiarati dall’analyzer con le problematiche a runtime menzionate nell’issue e cerca indicazioni dei maintainer o un ambito esplicito. Il lavoro sarebbe completo quando sarà stata definita una direzione chiara sul fatto che il rilevamento in fase di compilazione debba appartenere al progetto e su come dovrebbe essere realizzato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
distributed-systems, tooling
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.