I have an emerging mental vision of how this will all evolve and how the pieces fit together, but I need to get them in a more shareable format so that others can start working on various pieces independently.
For now, accept a submission, user ID, challenge ID, concatenate the challenge test to the submission and print to console (in the future will submit to messaging queue)
This API may also be responsible for other user-specific searches like showing a user's submissions and stats
Challenge browser API - Not entirely sure the browser API and runner API need to be separated, but I am thinking they will have different demands, and a generic not-user-specific API can be cached for performance and load management
Task runner - This is probably all me; I think it will take a challenge submission from a messaging queue, run it and message queue back the results. It will probably run in Docker containers, but it may eventually be worth considering CI/CD task runners like Jenkins. Task runners may be nowhere near the other servers and may even be volunteer-at-home PCs running a task runner app. (Cheaper / free-er than cloud compute!)
I have an emerging mental vision of how this will all evolve and how the pieces fit together, but I need to get them in a more shareable format so that others can start working on various pieces independently.
A partial list of things: