go-judge-demo icon indicating copy to clipboard operation
go-judge-demo copied to clipboard

Req: Enhance the documentation

Open maradanasai opened this issue 1 year ago • 1 comments
trafficstars

Hi @criyle thanks for providing this. I’m not from go background but very much interested in looking at details in this repo. Can you please help with sharing the architecture/flow design, purpose of every service and its components in detail will help understand a lot.

Also, may I know how we can scale these services horizontally and make it work.

Thanks in advance!!

maradanasai avatar Jan 26 '24 05:01 maradanasai

api gateway:

  • serves the static files for SPA website
  • /api/ws web socket endpoint for receiving real-time update on submissions
  • /api endpoint for AJAX calls, converting the request to gRPC calls to demo server including submit new code and get list of submissions

demo server:

  • connect MongoDB for storage
  • gRPC server for api calls from the api gateway to submit code for execution
  • gRPC streaming server for api gateway to push updates via web socket
  • gRPC streaming server for judger endpoint to push new submissions for execution

judger:

  • connect demo server via gRPC streaming endpoint for receiving new submissions
  • connect go-judge sandbox service via gRPC
  • run judge core logic and push updates via gRPC streaming endpoint

criyle avatar Jan 26 '24 05:01 criyle