-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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).
The overarching aim of this project is to provide a generic interface to a distributed autograding system that 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.
The master node is a JSON API that 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.