schedulerdriven
Schedulerdriven is a software architectural pattern in which a central scheduler governs the execution of tasks by deciding when to run them, where to run them, and in what order. In a schedulerdriven system, task definitions describe units of work and their inputs and outputs, while the scheduler encodes dependencies, priorities, and resource constraints and assigns work to workers or execution nodes. The approach emphasizes decoupling between task specification and execution, enabling dynamic adaptation to workload, latency requirements, and failures.
Core concepts include task graphs or dependency structures, priority policies, resource awareness (CPU, memory, I/O), time-based
Common domains for schedulerdriven systems include batch processing pipelines, data analytics workflows, cloud orchestration and platform
Benefits of the schedulerdriven approach include improved resource utilization, predictable throughput, policy enforcement, and easier recovery
Examples of scheduler-driven systems include Kubernetes for pod scheduling, Apache Airflow for DAG-based workflow orchestration, Slurm