Gateway is the routing layer for CodeSnack IDE's containerized development environments. It dynamically routes HTTP/WebSocket traffic to user-specific containers based on hostname patterns.
This is the first component being migrated from Node.js to Go for improved performance, lower memory footprint, and better concurrency handling under high load.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Ingress Traffic β
β (u777-8000.codesnack-ide.com/api/...) β
ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββ
β Gateway Server β
β (Ingress Controller) β
ββββββββββββ¬βββββββββββββ
β
βΌ
ββββββββββββββββββββββββ
β Request Pipeline β
β (orchestrator) β
ββββββββββββ¬ββββββββββββ
β
βββββββββββββββββΌββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββ ββββββββββββββ ββββββββββββββ
β Route β β Context β β Telemetry β
β Resolver β β Enrichment β β Tracker β
ββββββ¬ββββββ ββββββ¬ββββββββ ββββββββ¬ββββββ
β β β
β β β
Service Discovery Header injection Instrumentation
`u<userId>-<port>` Add metadata Metrics collection
Parse tenant ID Tracing context Active sessions
Lookup backend IP β β
β β β
βββββββββββ¬ββββββββ΄ββββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β Reverse Proxy β
β (L7 forwarding) β
ββββββββββ¬βββββββββ
β
βΌ
ββββββββββββββββββββββ
β Workload Backend β
β (IPC transport) β
ββββββββββββββββββββββ
Build: make build
Run: make run
Test: make test