Skip to content

Add per-workflow duplicate start suppression option - #34

Open
vince-chang-airbnb wants to merge 1 commit into
airbnb:mainfrom
vince-chang-airbnb:vince_chang--per-workflow-duplicate-start-suppression
Open

vince-chang-airbnb wants to merge 1 commit into
airbnb:mainfrom
vince-chang-airbnb:vince_chang--per-workflow-duplicate-start-suppression

Conversation

@vince-chang-airbnb

Copy link
Copy Markdown

Summary

  • Add a default-off WorkflowOptions.createExistingWorkflowIsNoop option for workflows that must suppress duplicate scheduling.
  • Propagate the option through WorkflowFactory and RunRequest so SkipperEngine can return an existing workflow instance without scheduling another execution.
  • Preserve the existing process-wide feature gate and the explicit RETRIES_EXHAUSTED resume path.
  • Preserve existing WorkflowOptions and RunRequest constructor signatures while defaulting the new option to false.

For a non-terminal workflow, this suppresses another execution and returns the current persisted instance. A later invocation after completion receives the persisted terminal result.

Testing

  • ./gradlew :test --tests com.airbnb.skipper.WorkflowOptionsTest --tests com.airbnb.skipper.WorkflowFactoryTest --tests com.airbnb.skipper.internal.SkipperEngineTest
  • ./gradlew build

@vince-chang-airbnb
vince-chang-airbnb marked this pull request as ready for review September 21, 2026 21:07

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant