ContinueAsNew does not support specifying a new orchestration version
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 68/100
- Tipo de issue
- Funcionalidade
- Clareza
- Claramente especificada
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- java
- Domínio
- backend-api-design, distributed-systems
Direção de pesquisa
Comece localizando TaskOrchestrationContext e TaskOrchestrationExecutor; em seguida, inspecione as sobrecargas existentes de continueAsNew e a construção de CompleteOrchestrationAction. Use como referência o issue do .NET SDK vinculado na descrição para o formato proposto das opções. A tarefa estará concluída quando os chamadores Java puderem fornecer uma nova versão e o executor preencher CompleteOrchestrationAction.newVersion, preservando o comportamento atual.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Java
- Estrelas
- 29
- Forks
- 18
- Merge médio
- 1d 10h
- PRs com merge (30d)
- 2
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/durabletask-java
-
Needs: Triage :mag:
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
microsoft/durabletask-java#303 ·
-
Needs: Triage :mag:
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
microsoft/durabletask-java#290 · 2 comentários ·
-
Needs: Triage :mag:
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
microsoft/durabletask-java#285 ·
-
Enhancement
microsoft/durabletask-java#274 · 1 reação · 2 responsáveis ·
-
Needs: Triage :mag:
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 42/100
microsoft/durabletask-java#270 ·
Todas as issues de microsoft/durabletask-java
Issues semelhantes
-
Bug Java Platform: Java
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
getsentry/sentry-java#6138 · 1 comentário ·
-
bug needs triage p2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
GoogleCloudPlatform/DataflowTemplates#4273 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
bug needs triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100