Skip to content
This repository has been archived by the owner on Nov 11, 2019. It is now read-only.
Ayush Ranjan edited this page May 26, 2019 · 4 revisions

What is Broadway?

Broadway is a distributed system which aims at distributing grading jobs across many grading machines and providing a user-friendly interface for courses to specify grading runs. It consists of a master node (the Broadway API) and many worker nodes (Broadway Graders).

What is the goal?

The overarching aim of this project is to provide a generic interface to a distributed autograding system which multiple courses can use. We aim at providing the following benefits:

  • Reliability
  • Scalability
  • Flexibility of building other proprietary services around this to serve various purposes.
  • Faster grading runs
  • Independence of grading run's progress from failures of student grading jobs. No student can tamper with the entire grading run.
  • Easier to track and debug grading jobs.
  • Consistency of environment in which student code is graded.

What does the API do?

The master node is a JSON API which serves HTTP requests. It is the point of communication for the grading machines and the courses that are using this service. It uses a database to keep information about courses, grading jobs and worker nodes. The API is responsible for receiving grading run requests, scheduling jobs in the correct order, delegating jobs to worker nodes in the correct format, providing courses with information about grading jobs and handle failures in worker nodes and grading jobs.

Clone this wiki locally