Skip to content

No embeddable TS library answers "what's runnable now" with rules

Status: open/proposed

No TypeScript library answers: given a dependency graph and node statuses, what is runnable now — with pluggable eligibility rules, priority ordering, and goal-direction? Python’s graphlib.TopologicalSorter offers a bare get_ready() / done() frontier and nothing else; the engines that do more (Airflow, Dagster, Prefect) are heavyweight runtimes, not embeddable libraries. There is room for a small, embeddable piece that fills the gap.

  • The JS/TS ecosystem: no dependency-readiness library with rules exists.
  • Any embedder needing readiness scheduling without adopting a full workflow runtime.
  • The SDLC plugin as the first consumer, validating the shape as a standalone library.
  • graphlib.TopologicalSorter (Python stdlib): get_ready() / done() / is_active() — an incremental frontier with no rules, ordering, or goal-direction (graph-scheduler-research).
  • The demand is proven inside large systems — Kubernetes’ filter→score scheduling, Airflow’s trigger_rules and priority_weight, Buck2’s weighted local scheduler — but each ships only as part of a big runtime (graph-scheduler-research).
  • A survey of JS graph libraries (graphology, graphlib/dagre) finds topological primitives but no readiness/scheduling layer (graph-scheduler-research).

PR-DZTZ-graph-scheduler — a small, embeddable library with a zero-dep core, shipped as its own OSS package, that carries the readiness engine plus the rule / ordering / goal-direction layer the ecosystem lacks.


← Back to Drivers