How lazyfetch/runtime works
Runtime is a browser-based, multi-language code execution platform. Users authenticate, open or save projects, edit code, execute it and view results or submission history; interactive programs can instead run in a live terminal session. The backend supports queued, cached execution and a direct-execution mode, with Docker isolation and PostgreSQL-backed user and project data. The graph combines sampled source with README-documented capabilities; unsampled internals are represented only where the tree supports a path, and uncertain wiring is omitted.
Main entry points: App.tsx Routes and session · EditorPage.tsx Code editor · ExecutionService.java Queue and cache · DockerExecutorUtil.java Docker executor
Components 34
Browser app
- Routes and session
frontend/src/App.tsx - Login and signup
frontend/src/pages/LoginPage.tsx - Project dashboard
frontend/src/pages/DashboardPage.tsx - Code editor
frontend/src/pages/EditorPage.tsx - Auth actions
frontend/src/hooks/useAuth.ts - Execution actions
frontend/src/hooks/useCodeExecution.ts - Project actions
frontend/src/hooks/useProjects.ts - History actions
frontend/src/hooks/useSubmissionHistory.ts - Auth API
frontend/src/api/auth.api.ts - Execution API
frontend/src/api/execution.api.ts - Projects API
frontend/src/api/projects.api.ts - Submissions API
frontend/src/api/submission.api.ts
Identity
- Auth endpoints
backend/src/main/java/com/runtime/controller/AuthController.java - Credentials and tokens
backend/src/main/java/com/runtime/service/AuthService.java - Guest tokens
backend/src/main/java/com/runtime/security/GuestTokenService.java - OAuth callback
backend/src/main/java/com/runtime/security/OAuth2SuccessHandler.java - JWT utilities
backend/src/main/java/com/runtime/config/JwtUtil.java
Code execution
- Execution endpoints
backend/src/main/java/com/runtime/controller/ExecutionController.java - Queue and cache
backend/src/main/java/com/runtime/service/ExecutionService.java - Direct execution
backend/src/main/java/com/runtime/controller/DirectExecutionController.java - Job producer
backend/src/main/java/com/runtime/jobs/JobProducer.java - Job worker
backend/src/main/java/com/runtime/jobs/JobConsumer.java - Docker executor
backend/src/main/java/com/runtime/engine/DockerExecutorUtil.java - Queue and result cache
- Isolated containers
Interactive terminal
- Session handler
backend/src/main/java/com/runtime/websocket/WebSocketHandler.java - Interactive terminal
frontend/src/components/terminal/InteractiveTerminal.tsx
Projects and history
- Project endpoints
backend/src/main/java/com/runtime/controller/SavedCodeController.java - Project management
backend/src/main/java/com/runtime/service/SavedCodeService.java - History endpoints
backend/src/main/java/com/runtime/controller/SubmissionController.java - Submission records
backend/src/main/java/com/runtime/service/SubmissionService.java - PostgreSQL
Other components
- User
- Google OAuth
Connections 44
- User → Routes and session: uses
- Routes and session → Login and signup: routes to
- Routes and session → Project dashboard: routes to
- Routes and session → Code editor: routes to
- Login and signup → Auth actions: invokes
- Auth actions → Auth API: calls
- Auth API → Auth endpoints: HTTP requests
- Auth endpoints → Credentials and tokens: delegates
- Auth endpoints → Guest tokens: delegates
- Credentials and tokens → PostgreSQL: reads and writes users
- Credentials and tokens → JWT utilities: generates tokens
- Guest tokens → PostgreSQL: writes guest user
- Guest tokens → JWT utilities: generates token
- Google OAuth → OAuth callback: OAuth identity
- OAuth callback → PostgreSQL: reads and writes users
- OAuth callback → JWT utilities: generates token
- Project dashboard → Project actions: loads projects
- Project actions → Projects API: calls
- Projects API → Project endpoints: HTTP requests
- Project endpoints → Project management: delegates
- Project management → PostgreSQL: reads and writes projects
- Code editor → Execution actions: runs code
- Execution actions → Execution API: calls
- Execution API → Execution endpoints: HTTP requests
- Execution endpoints → Queue and cache: delegates
- Queue and cache → Queue and result cache: checks cache and status
- Queue and cache → Job producer: submits job
- Job producer → Queue and result cache: enqueues job
- Job worker → Queue and result cache: dequeues job and stores result
- Job worker → Docker executor: executes job
- Docker executor → Isolated containers: runs isolated code
- Job worker → Submission records: records execution
- Direct execution → Docker executor: executes code
- Direct execution → Submission records: records execution
- Queue and cache → Execution endpoints: returns job status
- Code editor → Interactive terminal: opens session
- Interactive terminal → Session handler: WebSocket messages
- Session handler → Docker executor: starts interactive run
- Session handler → Isolated containers: streams container I/O
- Code editor → History actions: loads history
- History actions → Submissions API: calls
- Submissions API → History endpoints: HTTP requests
- History endpoints → Submission records: delegates
- Submission records → PostgreSQL: reads and writes submissions