Skip to content

Vouch Request #4941

Description

@jingerpie

Why do you want to contribute?

I am a heavy cloud and selfhost trigger dev user.

I have 5 years of dev experience. And I am looking to work on this feature:

Allow a task definition to declare the region(s) it may execute in:

  export const myTask = task({
    id: "my-task",
    region: "eu-central-1",                    // pin to one region
    // or
    region: ["eu-central-1", "us-east-1"],     // allow one or more regions
    run: async (payload) => { ... },
  });

The use case for this is:
Resilience. If one region is down or at full capacity, another listed region can still pick up the run. Since workers pull, whichever worker in any listed region grabs it first runs it.
Checkpointing on mixed CPU architectures. With ARM and AMD machines, a checkpointed run can't be restored on a different architecture (CRIU), so those tasks need to be pinned to one architecture. That means splitting the workers into an ARM group and an AMD group. The downside of the split is that a general task pinned to one group only gets that half of the fleet. Listing both groups on the general tasks gives them the whole fleet back, while the checkpoint-sensitive tasks stay pinned to one.

Prior contributions or relevant experience

No response

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions