Skip to content

ADR: hints process directive for executor-specific scheduling hints#6960

Open
robsyme wants to merge 1 commit intomasterfrom
adr/hints-process-directive
Open

ADR: hints process directive for executor-specific scheduling hints#6960
robsyme wants to merge 1 commit intomasterfrom
adr/hints-process-directive

Conversation

@robsyme
Copy link
Collaborator

@robsyme robsyme commented Mar 23, 2026

Summary

Architecture Decision Record proposing a new hints process directive with namespaced keys as a generic extension point for executor-specific scheduling hints.

First use case: AWS Batch consumable resources for license-seat-aware scheduling.

Options Evaluated

  1. Dedicated consumableResources directive — too narrow, each executor feature would need its own directive
  2. Overload resourceLabels — conflates metadata tags with scheduling behavior; resourceLabels uses replacement semantics in config overrides, so a sysadmin's cost-tracking labels would be wiped out if a user sets consumable resources (and vice versa)
  3. New hints directive (recommended) — generic, extensible, namespaced keys, executors consume what they understand

Proposed Syntax

process runDragen {
    hints 'consumable-resource:my-dragen-license': 1
}

Ref: #5917, #6957

🤖 Generated with Claude Code

Propose a generic 'hints' process directive with namespaced keys as
the extension point for executor-specific scheduling hints. First use
case: AWS Batch consumable resources for license-seat management.

Evaluates three options: dedicated consumableResources directive,
overloading resourceLabels, and a new hints directive. Recommends
hints for extensibility and separation of concerns.

Ref: #5917
Signed-off-by: Rob Syme <[email protected]>
@netlify
Copy link

netlify bot commented Mar 23, 2026

Deploy Preview for nextflow-docs-staging ready!

Name Link
🔨 Latest commit 7c51d89
🔍 Latest deploy log https://app.netlify.com/projects/nextflow-docs-staging/deploys/69c1ab1bc0416200087b5749
😎 Deploy Preview https://deploy-preview-6960--nextflow-docs-staging.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@adamrtalbot
Copy link
Collaborator

See also Kubernetes Node Selectors and Node Affinity which perform a similar function: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/

Indeed, the exisitng nodeLabel method could be ported to this directive.

@adamrtalbot
Copy link
Collaborator

Other related tickets I know of:

  1. Ability to dedicate accelerator directive (GPU) over range #5570 (on-prem)
  2. Support reservation when provisioning VM/ accelerators on Google Batch #4262 (GCP)

This may provide useful context in terms of use cases.

@bentsherman
Copy link
Member

Related: WDL requirements and hints

@adamrtalbot
Copy link
Collaborator

#5850

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.

3 participants