← Back to project catalogue
GP-CS-03NOUGUComputer ScienceOpen for request

Fault-tolerant distributed job scheduler simulator

An event-driven distributed-systems simulator for comparing scheduling policies, worker failures, retries, recovery, and resource use.

  • Go
  • Nuxt
  • Vue
  • WebSockets
  • PostgreSQL
  • Docker

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

01

Workload model

Defines jobs, task graphs, priorities, arrival times, durations, resource demands, and deterministic random seeds.

02

Cluster model

Represents workers, available resources, health states, task slots, and simulated communication delay.

03

Scheduling engine

Selects eligible tasks and workers using interchangeable first-come, shortest-job, priority, and resource-aware policies.

04

Event simulator

Advances simulated time through ordered events for arrivals, starts, completions, failures, retries, and recoveries.

05

Failure and recovery

Injects configured failures and applies timeout, retry, backoff, reassignment, and checkpoint policies.

06

Metrics and visualisation

Produces worker timelines, queue traces, job graphs, event logs, and comparative experiment measures.

Methodology

System workflow

  1. 01
    Define experiment

    The user selects a cluster, workload, scheduling policy, recovery policy, and deterministic seed.

  2. 02
    Initialise simulation

    Jobs, workers, queues, dependencies, and the first ordered events are created.

  3. 03
    Schedule tasks

    The selected scheduler assigns eligible tasks to workers that satisfy their resource requirements.

  4. 04
    Process events and failures

    The engine advances time, completes work, injects configured failures, and applies recovery actions.

  5. 05
    Compare 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

  1. 01Cluster, workload, scheduler, and failure configuration interface
  2. 02Deterministic event-driven simulation engine
  3. 03Scheduling, retry, timeout, checkpoint, and recovery policies
  4. 04Prepared experiments, execution traces, and comparative results
  5. 05Complete source code in a private GitHub repository
  6. 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

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.