ContinueAsNew does not support specifying a new orchestration version
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- java
Direzione di ricerca
Inizia individuando TaskOrchestrationContext e TaskOrchestrationExecutor, quindi esamina gli overload esistenti di continueAsNew e la costruzione di CompleteOrchestrationAction. Usa come riferimento l’issue del .NET SDK collegata nella descrizione per la forma proposta delle opzioni. Il lavoro è completo quando i chiamanti Java possono fornire una nuova versione e l’executor valorizza CompleteOrchestrationAction.newVersion, preservando il comportamento attuale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The continueAsNew() API does not expose a way to specify a new orchestration version for the restarted instance. The underlying protobuf field (CompleteOrchestrationAction.newVersion, field 4) has existed since the initial proto commit, but the Java SDK never populates it.
Problem
TaskOrchestrationContext.continueAsNew() only accepts (Object input, boolean preserveUnprocessedEvents). There is no parameter to pass a new version. In TaskOrchestrationExecutor, when building the CompleteOrchestrationAction, setNewVersion() is never called — the field is always left empty.
This prevents version migration scenarios for long-running/eternal orchestrations (e.g., monitoring loops that need to evolve their logic over time via continueAsNew with a new version).
What exists today
- Proto layer:
CompleteOrchestrationAction.newVersion(field 4) is defined and supported by all backends (DurableTask.Core since 2014, DTS/Beskar, gRPC sidecar) - Java API:
continueAsNew(Object input)andcontinueAsNew(Object input, boolean preserveUnprocessedEvents)— no version parameter - Java executor:
CompleteOrchestrationAction.Buildernever callssetNewVersion()
Proposed fix
Follow the pattern from the .NET SDK (microsoft/durabletask-dotnet#682):
- Add a
ContinueAsNewOptionsclass withnewInput,preserveUnprocessedEvents, andnewVersionproperties - Add a
continueAsNew(ContinueAsNewOptions options)overload toTaskOrchestrationContext - In
TaskOrchestrationExecutor, whennewVersionis non-null, callbuilder.setNewVersion(StringValue.of(newVersion))on theCompleteOrchestrationAction
Related
- .NET SDK implementation: microsoft/durabletask-dotnet#682
- Azure Functions extension: Azure/azure-functions-durable-extension#3404
- Proto field:
CompleteOrchestrationAction.newVersion(field 4) inorchestrator_service.proto
- Lingua principale
- Java
- Stelle
- 29
- Fork
- 18
- Merge medio
- 1g 10h
- PR unite (30g)
- 2
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/durabletask-java
-
Needs: Triage :mag:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
microsoft/durabletask-java#303 ·
-
Needs: Triage :mag:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
microsoft/durabletask-java#290 · 2 commenti ·
-
Needs: Triage :mag:
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/durabletask-java#285 ·
-
Enhancement
microsoft/durabletask-java#274 · 1 reazione · 2 assegnatari ·
-
Needs: Triage :mag:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
microsoft/durabletask-java#270 ·
Tutte le issue di microsoft/durabletask-java
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
bug needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 94/100
objectionary/hone-maven-plugin#1061 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
spring-projects/spring-modulith#1895 ·