Fault-tolerant distributed job scheduler simulator
An event-driven distributed-systems simulator for comparing scheduling policies, worker failures, retries, recovery, and resource use.
Project definition
Problem statement
Distributed job schedulers must assign work across workers with different resources while responding to queue pressure, task dependencies, failures, timeouts, and retries. Testing these behaviours on a real cluster is expensive and difficult to reproduce.
The engineering problem is to build a deterministic event-driven simulator that applies scheduling and recovery policies consistently and produces measurements that can be compared across identical workloads.
Project objectives
- Model jobs, tasks, dependencies, worker resources, queues, and simulated time.
- Implement and compare multiple scheduling policies.
- Inject worker, task, network-delay, and timeout failures.
- Model retry, backoff, reassignment, and checkpoint recovery policies.
- Measure throughput, completion time, utilisation, fairness, and recovery cost.
System design
System modules
Workload model
Defines jobs, task graphs, priorities, arrival times, durations, resource demands, and deterministic random seeds.
Cluster model
Represents workers, available resources, health states, task slots, and simulated communication delay.
Scheduling engine
Selects eligible tasks and workers using interchangeable first-come, shortest-job, priority, and resource-aware policies.
Event simulator
Advances simulated time through ordered events for arrivals, starts, completions, failures, retries, and recoveries.
Failure and recovery
Injects configured failures and applies timeout, retry, backoff, reassignment, and checkpoint policies.
Metrics and visualisation
Produces worker timelines, queue traces, job graphs, event logs, and comparative experiment measures.
Methodology
System workflow
- 01Define experiment
The user selects a cluster, workload, scheduling policy, recovery policy, and deterministic seed.
- 02Initialise simulation
Jobs, workers, queues, dependencies, and the first ordered events are created.
- 03Schedule tasks
The selected scheduler assigns eligible tasks to workers that satisfy their resource requirements.
- 04Process events and failures
The engine advances time, completes work, injects configured failures, and applies recovery actions.
- 05Compare results
Metrics and traces are stored so the same workload can be compared across policies.
Demonstration scenario
The same dependent-task workload is run with three scheduling policies on a six-worker cluster. A worker fails during execution and later recovers. The simulator shows task reassignment, retry cost, queue changes, worker timelines, and a comparison of completion time, utilisation, and fairness.
Engineering
Technical architecture
- Simulation engine
- Go implementation using an ordered event queue, explicit state transitions, deterministic seeds, and pluggable policy interfaces.
- Scheduling policies
- Documented implementations for queue ordering, resource matching, priorities, fairness, and task-dependency checks.
- Failure model
- Configurable worker loss, task failure, timeout, delayed heartbeat, and recovery events with reproducible timing.
- Visual interface
- Nuxt and Vue views for experiment configuration, worker timelines, task graphs, metrics, and event inspection.
- Live trace transport
- WebSocket delivery of bounded simulation events with controls for pause, step, speed, and replay.
- Experiment storage
- PostgreSQL records for configurations, seeds, summary metrics, and selected traces used in comparisons.
Testing
Evaluation
Evaluation measures
- Deterministic reproduction of results from the same configuration and seed
- Task-dependency and resource-allocation correctness
- Makespan, throughput, waiting time, and worker utilisation
- Retry count, duplicated work, and recovery delay under failures
- Fairness across jobs with different priorities and sizes
- Simulation runtime and memory use as workload size increases
System boundaries
- The system simulates execution and does not run arbitrary user programs.
- Network, worker, and task behaviour are limited to the documented simulation models.
- The prototype is not a production container orchestrator or cluster manager.
- Results explain the configured experiments and are not universal scheduler benchmarks.
Included
- 01Cluster, workload, scheduler, and failure configuration interface
- 02Deterministic event-driven simulation engine
- 03Scheduling, retry, timeout, checkpoint, and recovery policies
- 04Prepared experiments, execution traces, and comparative results
- 05Complete source code in a private GitHub repository
- 06Complete project documentation with synopsis, abstract, methodology, algorithms, architecture diagrams, experiment results, screenshots, and conclusion
Project record
No buyer information is collected on this page.
- Permanent project ID
- GP-CS-03NOUGU
- Catalogued
- 21 Aug 2026
- Completed
- Pending
- Verified
- Pending
- Demonstration
- Added when ready
Handover
After purchase
- 01Payment is confirmed
The project is marked unavailable and cannot be purchased again.
- 02Repository access is granted
The buyer's submitted GitHub account receives access to the private repository.
- 03The purchase record is delivered
The certification sheet is prepared from the reviewed buyer details and sent privately by email.