IllumiDesk / async-nbgrader

nbgrader extension to manage assignment auto-grading asynchronously with a light queue based system.
Apache License 2.0
1 stars 0 forks source link

New Architecture for Auto Grading Job services #9

Open jgwerner opened 3 years ago

jgwerner commented 3 years ago

Overview

IllumiDesk needs to re-design the auto-grading services to improve scalability and decouple the service from the rest of the LMS system.

Desires and Goals

Notes

Nice to haves

Diagrams and Architecture

This diagram has a basic first draft of how the re-architecture could look.

Resources

Complications identified

rupeshparab commented 3 years ago

One of the solution for having Auto-Grading with queue/task-based job approach is to integrate otter-grader, there are 2 approaches to do this:

1. Replacing nbgrader with ottergrader

Pros

Cons

2. Update autograding of nbgrader to use ottergrader module

Pros:

Cons

jgwerner commented 3 years ago

@rupeshparab from what I understand you are implementing this solution with Argo. Do you have any requirements definitions yet? For example would it use primarily Argo Workflow, ArgoCD, etc.

With this information we can start preparing our helm chart to support these additional resources.

cc/ @Abhi94N

rupeshparab commented 2 years ago

We will be argo workflows for configuring event handlers, initially I was planning on using AMQP for event source

although, its configuration doesn't seem very straight forward, trying to check if configuration with Kafka is easier.

jgwerner commented 2 years ago

@rupeshparab to confirm, are you implementing this with Argo Events and then using something like AMQP as the event source? If so perhaps our first version can use something simpler such as using webhooks and then provide something more performant in future iterations.