How monuchaudhary14/archon works
Archon combines a Go system-design interview platform with a Python AI engine. Users authenticate, select or enter an interview, collaborate in a live chat/diagram session, and can later review evaluation reports and progress. The Go server wires authenticated API domains and a WebSocket AI session; the AI engine consumes Kafka events, generates interview responses, and dispatches evaluation work to Temporal. The graph includes documented core AI services and Go product domains, but source excerpts do not establish every internal call or all unsampled subsystem wiring.
Main entry points: server.go HTTP API Server · llm_service.py LLM Interviewer · handler.go Live AI Chat · worker.py Temporal Worker
Components 29
Go Platform
- HTTP API Server
internal/server/server.go - Authentication
internal/auth/routes.go - PostgreSQL
- Redis
Interview Experience
- Interview Sessions
internal/interview/handler.go - Live AI Chat
internal/ai/handler.go - Interview Diagrams
internal/diagram/handler.go - Session Processor
internal/ai/session_processor.go - AI Kafka Bridge
internal/ai/kafka.go
Progress & Content
- Dashboard
internal/dashboard/handler.go - Analytics
internal/analytics/handler.go - Evaluation Reports
internal/reports/handler.go - Practice Quizzes
internal/quiz/handler.go - User Settings
internal/settings/handler.go
AI Runtime
- AI Service Runtime
ai_engine/app/main.py - Kafka Consumer
ai_engine/app/services/kafka_service.py - LLM Interviewer
ai_engine/app/services/llm_service.py - Knowledge Search
ai_engine/app/services/knowledge_service.py - Diagram Critique
ai_engine/app/services/diagram_service.py - Interview Context
ai_engine/app/services/interview_repository.py - LLM Key Rotation
ai_engine/app/core/key_rotator.py
Evaluation
- Temporal Worker
ai_engine/app/workflows/worker.py - Evaluation Workflow
ai_engine/app/workflows/evaluation_workflow.py - Evaluation Activities
ai_engine/app/workflows/activities.py - Workflow Contracts
ai_engine/app/workflows/contracts.py
Other components
- Candidate
- Kafka
- Temporal Service
- LLM Provider
Connections 36
- Candidate → HTTP API Server: uses API
internal/server/server.go - HTTP API Server → Authentication: registers routes
internal/server/server.go - HTTP API Server → Interview Sessions: registers routes
internal/server/server.go - HTTP API Server → Live AI Chat: sets up AI
internal/server/server.go - HTTP API Server → Dashboard: registers routes
internal/server/server.go - HTTP API Server → Analytics: registers routes
internal/server/server.go - HTTP API Server → Evaluation Reports: registers routes
internal/server/server.go - HTTP API Server → Practice Quizzes: registers routes
internal/server/server.go - HTTP API Server → User Settings: registers routes
internal/server/server.go - HTTP API Server → PostgreSQL: opens pool
internal/server/server.go - HTTP API Server → Redis: creates client
internal/server/server.go - Candidate → Live AI Chat: opens WebSocket
internal/ai/handler.go - Live AI Chat → Session Processor: processes session
internal/ai/handler.go - Live AI Chat → Authentication: authenticates user
internal/ai/handler.go - Live AI Chat → Interview Diagrams: checks ownership
internal/ai/handler.go - Interview Sessions → PostgreSQL: persists sessions
- Dashboard → PostgreSQL: queries progress
- Evaluation Reports → PostgreSQL: reads interview results
- AI Service Runtime → LLM Interviewer: creates service
ai_engine/app/main.py - AI Service Runtime → Kafka Consumer: starts consumer
ai_engine/app/main.py - AI Service Runtime → Temporal Worker: starts worker
ai_engine/app/main.py - Kafka Consumer → LLM Interviewer: generates responses
ai_engine/app/services/kafka_service.py - Kafka Consumer → Temporal Worker: starts evaluation
ai_engine/app/services/kafka_service.py - Kafka Consumer → Kafka: consumes events
- AI Kafka Bridge → Kafka: exchanges events
- Temporal Worker → Temporal Service: connects worker
ai_engine/app/workflows/worker.py - Temporal Worker → Evaluation Workflow: registers workflow
ai_engine/app/workflows/worker.py - Temporal Worker → Evaluation Activities: registers activities
ai_engine/app/workflows/worker.py - Evaluation Workflow → Evaluation Activities: runs activities
ai_engine/app/workflows/evaluation_workflow.py - Evaluation Workflow → Workflow Contracts: uses inputs
ai_engine/app/workflows/evaluation_workflow.py - Evaluation Activities → Knowledge Search: searches rubrics
ai_engine/app/workflows/activities.py - LLM Interviewer → LLM Key Rotation: rotates credentials
ai_engine/app/services/llm_service.py - LLM Interviewer → LLM Provider: invokes model
- LLM Interviewer → Knowledge Search: uses context
ai_engine/app/services/llm_service.py - LLM Interviewer → Diagram Critique: uses critique
ai_engine/app/services/llm_service.py - LLM Interviewer → Interview Context: uses context store
ai_engine/app/services/llm_service.py