배경
README 로드맵의 Phase 2: Advanced Logic은 "Relationship-based control (Ontology)"와 "Automated sequences and conditional triggers"를 명시한다. Phase 1의 1:1 Command/Response 패턴 위에 관계를 따라 제어가 전파/조건화되는 모델이 필요하다.
본 이슈는 디자인 산출물(ADR + 아키텍처 문서)이지 코드 변경이 아니다. 실 구현은 본 디자인 승인 후 별도 이슈로 분리한다.
산출물
-
ADR: docs/adr/0003-relationship-based-control.md
- 제어 명령의 관계 propagation 모델 (예: 펌프 정지 → 산하
connectedTo 밸브 자동 닫기)
- 조건부 트리거 정의 (when condition → then commands)
- 안전성: 무한 루프 방지, 명령 권한, 롤백 정책
- 결정성·감사 가능성·인증 정책
-
아키텍처 다이어그램: 데이터/제어 평면 분리, 명령 라우팅 흐름
-
인터페이스 초안: NATS subject 명명, 메시지 스키마, 상태 머신
검토할 핵심 결정
- 명령 전파를 opt-in (자산별 명시) vs opt-out (자동) 으로 할 것인가
- 트리거 정의를 코드 vs 설정 vs 룰 엔진(F번) 으로 할 것인가
- 안전 모드(읽기 전용·드라이런·실제)의 layered approach
- 양방향 제어 시 한쪽 실패에 대한 회복 정책
범위 외
- 실 코드 구현 (별도 이슈)
- 룰 엔진 통합 (F번에서 별도 다룸)
- HTTP 제어 표면 (E번에서 read-only만 다룸)
의존성
다음 단계
본 디자인 승인 후 다음과 같이 분리:
- "control propagation 엔진 구현" 이슈
- "conditional trigger 정의 + 실행" 이슈
- "안전 모드·감사 로깅" 이슈
배경
README 로드맵의 Phase 2: Advanced Logic은 "Relationship-based control (Ontology)"와 "Automated sequences and conditional triggers"를 명시한다. Phase 1의 1:1 Command/Response 패턴 위에 관계를 따라 제어가 전파/조건화되는 모델이 필요하다.
본 이슈는 디자인 산출물(ADR + 아키텍처 문서)이지 코드 변경이 아니다. 실 구현은 본 디자인 승인 후 별도 이슈로 분리한다.
산출물
ADR:
docs/adr/0003-relationship-based-control.mdconnectedTo밸브 자동 닫기)아키텍처 다이어그램: 데이터/제어 평면 분리, 명령 라우팅 흐름
인터페이스 초안: NATS subject 명명, 메시지 스키마, 상태 머신
검토할 핵심 결정
범위 외
의존성
다음 단계
본 디자인 승인 후 다음과 같이 분리: