2 KiB
2 KiB
| domain | last_rule_review_commit | last_rule_updated_at |
|---|---|---|
| api | no-commit-yet | 2026-05-24 |
api
목적 / 책임
클라이언트-facing socket API endpoint를 제공한다. proto-socket server lifecycle, connection setup, heartbeat timing, and API configuration을 이 경계에서 관리한다.
포함 경로
services/api/cmd/alt-api/- API service entrypointservices/api/internal/config/- API environment configurationservices/api/internal/socket/- proto-socket server constructionservices/api/go.mod- API module dependencies
제외 경로
services/worker/- long-running jobs and backtest executionpackages/contracts/- protobuf schema sourcepackages/domain/- transport-free domain vocabularyapps/client/- UI and client navigation
주요 구성 요소
config.Config- host, port, socket path, heartbeat interval, heartbeat waitconfig.Load- environment variable parsing with local fallback defaultssocket.NewServer- proto-socketWsServerconstructioncmd/alt-api/main.go- signal handling and service lifecycle
유지할 패턴
- Read configuration from environment variables with explicit local defaults.
- Keep process lifecycle in
cmd/alt-api; keep reusable socket construction underinternal/socket. - Treat proto-socket as the transport abstraction; ALT payload parsing should be introduced deliberately from contracts.
다른 도메인과의 경계
- contracts: API routes and parses messages according to contracts, but contract source stays in
packages/contracts. - worker: API may enqueue or observe worker jobs, but should not run long backtest/import work inline.
- client: API serves client sessions; client UI state and navigation stay in Flutter.
금지 사항
- Do not add direct Flutter/client assumptions to API internals.
- Do not put scheduled job loops or heavy data processing in the API service.
- Do not bypass proto-socket for the main client session path without an explicit architecture update.