Skip to content

프로덕션 준비

Commander는 첫날부터 프로덕션을 염두에 둡니다. 관측·안전·신뢰성 기능이 구성 요소마다 들어 있습니다.

기능 매트릭스

역량Commander 상태
타입 안전TypeScript strict, as any / @ts-ignore 제로 (ESLint error)
에러 처리100+ 모듈에서 빈 catch 제로
메트릭Prometheus/OpenMetrics 카운터·게이지·히스토그램 + 테넌트 라벨
트레이싱영속 trace store, OpenTelemetry export
크래시 안전단계마다 atomic SQLite WAL 체크포인트 + 이벤트 소싱 해시 체인
서킷 브레이커5회 실패 → 30s open → half-open, 프로바이더별 레지스트리
DLQ7 카테고리, 15 실패 모드, 영속 저장 + 재실행
멀티 테넌시테넌트별 rate limit, 동시성 쿼터, 스토리지·캐시 격리
보안7계층 EnterpriseSecurityGateway, DLP, capability tokens, Bearer, CORS, rate limit
관측health, readiness, OpenAPI, SSE, Grafana 대시보드
이벤트 소싱SHA-256 해시 체인 WAL, 스냅샷 복구, 결정적 재생
플러그인 샌드박스서드파티 플러그인 로드 컨텍스트 제한; 권한은 메인 시스템을 넘지 않음

안전 메커니즘

Circuit Breaker

연속 5회 실패 후 30초 open, 이후 half-open으로 회복. CircuitBreakerRegistry가 활성 프로바이더 브레이커를 관리합니다.

Dead Letter Queue

복구 불가 오류를 7 카테고리(llm, tool, execution, verification, circuit_breaker, compensation, semantic_drift)와 15 표준 실패 모드로 영속화. 원인 수정 후 재실행 지원.

Compensation Registry

실패한 mutation 도구는 등록된 보상 액션으로 롤백. 분산 트랜잭션용 Saga 코디네이터와 연동.

State Checkpointer

매 단계 SQLite WAL(synchronous=NORMAL, busy_timeout=5000)로 atomic 체크포인트. 실패 지점에서 재개.

Event Sourcing Engine

SHA-256 해시 체인 WAL로 변조 방지 이벤트 로그. 타임스탬프·난수·LLM 응답·도구 결과 등 비결정 입력을 기록해 결정적 재생.

Recovery Bootstrapper

프로세스 기동 시 zombie run(EXECUTING/VERIFYING/PAUSED) 스캔, fencing lease 획득 후 체크포인트 재개 또는 보상 후 중단.

관측

메트릭

typescript
getMetricsCollector().exportOpenMetrics();
// counters, gauges, histograms + tenant labels

Tracing

TraceStore에 영속하는 span 기반 실행 트레이스. OpenTelemetry export 시 PII 레드액션 (gen_ai.prompt 등 자동 제거).

Health

  • /health — liveness
  • /ready — readiness
  • /metrics — Prometheus
  • /health/detailed — 브레이커, DLQ, compensation, event bus, provider, event sourcing

Grafana

  • 개발자 뷰: 성공률, P95, 토큰 비용, 활성 run, 도구 성공률
  • 메커니즘 뷰: WAL 지연·크기, DLQ backlog, 브레이커 상태, 이벤트 backlog, SQLite 락, 보상 실행률

테스트

실패 제로 지향:

  • 6700+ unit / integration / chaos / e2e
  • 카오스 몽키 장애 주입
  • 멀티 테넌트 격리 시나리오
  • 플러그인 권한·샌드박스 시나리오
  • 스트레스: 10K 메시지, 50 동시 호출
npx tsx --test tests/*.test.ts
npx tsc --noEmit

관련

MIT — 멀티 에이전트 오케스트레이션을 위해.