Skip to content

design: Phase 2 — 관계 기반 제어 / 조건부 트리거 아키텍처 #87

@e7217

Description

@e7217

배경

README 로드맵의 Phase 2: Advanced Logic은 "Relationship-based control (Ontology)"와 "Automated sequences and conditional triggers"를 명시한다. Phase 1의 1:1 Command/Response 패턴 위에 관계를 따라 제어가 전파/조건화되는 모델이 필요하다.

본 이슈는 디자인 산출물(ADR + 아키텍처 문서)이지 코드 변경이 아니다. 실 구현은 본 디자인 승인 후 별도 이슈로 분리한다.

산출물

  1. ADR: docs/adr/0003-relationship-based-control.md

    • 제어 명령의 관계 propagation 모델 (예: 펌프 정지 → 산하 connectedTo 밸브 자동 닫기)
    • 조건부 트리거 정의 (when condition → then commands)
    • 안전성: 무한 루프 방지, 명령 권한, 롤백 정책
    • 결정성·감사 가능성·인증 정책
  2. 아키텍처 다이어그램: 데이터/제어 평면 분리, 명령 라우팅 흐름

  3. 인터페이스 초안: NATS subject 명명, 메시지 스키마, 상태 머신

검토할 핵심 결정

  • 명령 전파를 opt-in (자산별 명시) vs opt-out (자동) 으로 할 것인가
  • 트리거 정의를 코드 vs 설정 vs 룰 엔진(F번) 으로 할 것인가
  • 안전 모드(읽기 전용·드라이런·실제)의 layered approach
  • 양방향 제어 시 한쪽 실패에 대한 회복 정책

범위 외

  • 실 코드 구현 (별도 이슈)
  • 룰 엔진 통합 (F번에서 별도 다룸)
  • HTTP 제어 표면 (E번에서 read-only만 다룸)

의존성

다음 단계

본 디자인 승인 후 다음과 같이 분리:

  • "control propagation 엔진 구현" 이슈
  • "conditional trigger 정의 + 실행" 이슈
  • "안전 모드·감사 로깅" 이슈

Metadata

Metadata

Assignees

No one assigned

    Labels

    designArchitecture and design discussions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions