Judge Flow
Programming problems follow an asynchronous judge pipeline.
Flow
- The desktop client saves draft code into
answers - A formal code run creates a
submission - The API creates a
judge_task judge-workerconsumes the task- The worker executes mock logic first, then later real sandbox logic
- Results are written back to
submissionsand per-case result tables - The final exam score reads the chosen
finalSubmissionId
Why Async
- The API remains responsive
- User code never runs inside the request path
- Retries and queue control become manageable
- Real sandboxing can be introduced later without changing the product flow