go-judge-demo
go-judge-demo copied to clipboard
Req: Enhance the documentation
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!!
api gateway:
- serves the static files for SPA website
/api/wsweb socket endpoint for receiving real-time update on submissions/apiendpoint for AJAX calls, converting the request togRPCcalls todemo serverincluding 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-judgesandbox service via gRPC - run judge core logic and push updates via gRPC streaming endpoint