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
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abertaarea/plugin
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
apache/rocketmq-dashboard#5064 ·
-
Consent portal: creating a duplicate Purpose shows a generic error instead of "already exists" Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
wso2/dpdp-accelerator#287 ·