Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE]: Support running JOIN tasks synchronously #387

Open
lbestatlas opened this issue Feb 11, 2025 · 0 comments
Open

[FEATURE]: Support running JOIN tasks synchronously #387

lbestatlas opened this issue Feb 11, 2025 · 0 comments

Comments

@lbestatlas
Copy link
Contributor

Describe the Feature Request

We have recently tried running JOIN tasks synchronously in Conductor. To do this we made a small change to WorkflowExecutorOps.isLazyEvaluateWorkflow and updated the JOIN task to return isAsync = false.

Our reason for switching to sync are

  1. predictable completion of the JOIN without the need to tune any settings
  2. reduction in JOIN executions for long running JOINs

Describe Preferred Solution

Make existing JOIN task sync
Pros

  • simple change
  • likely will be more performant for the majority
    Cons
  • maybe some use cases it results in more JOIN executions

Describe Alternatives

  1. Have the JOIN task be driven by a system property
    Pros
  • this is an fairly simple change
  • gives consumers the option, although still a single setting for all JOINs
    Cons
  • may make maintenance of execution. logic more complicated
  1. Have the JOIN task be either async or sync based on TaskDef
  • would require isAsync to be passed the task which won’t work initializing queues
  • might need to introduce a new method supportsAsync()
    Pros
  • this is a flexible solution allowing workflow owners to choose
    Cons
  • more complexity in making this change
  1. Have both a sync and non sync JOIN task
  • any conditional logic related to execution of JOINS will not be able to use the TaskType there will need to be another attribute of
    tasks i.e. WorkerSystemTask.isJoin()
    Pros
  • this is a flexible solution allowing workflow owners to choose which JOIN they use
    Cons
  • more complexity in making this change
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

No branches or pull requests

1 participant