화재 확산·탈출·도로 차단 등 새 이벤트 발생 시
DB 상태를 재구성하고 추론을 즉시 재실행하는 핵심 아키텍처
이벤트 발생 시 DB의 기존 레코드를 직접 수정한다.
→ 이전 상태가 사라져 롤백 불가
→ 이벤트 순서 추적 불가
→ 디버깅 시 "어느 시점에 어떤 판단을 했는지" 알 수 없음
기반 DB는 절대 수정하지 않는다.
이벤트를 불변 로그에 쌓고, 조회 시마다 base + 누적 이벤트를 합산해 현재 상태를 도출한다.
→ 모든 시점의 상태 재현 가능
→ 추론 근거 추적 가능
돌발변수의 타입과 대상을 담는 불변 데이터 객체. 타임스탬프 자동 기록.
이벤트를 순서대로 쌓는 불변 로그. base_db에 오버레이해 WorldState를 생성.
WorldState를 입력받아 인지·물리 취약성 점수를 계산하고 우선순위 목록을 반환.
오케스트레이터. 이벤트 1개를 받아 Delta → Merge → Inference 전 과정을 실행.
python event_engine.py
| 항목 | v4 — DB 직접 수정 | v5 — Event Sourcing |
|---|---|---|
| 이벤트 처리 | 레코드 직접 UPDATE | 이벤트 로그에 APPEND |
| 기반 DB | 이벤트마다 변형됨 | 항상 불변 유지 |
| 과거 상태 재현 | 불가 | 이벤트 n번까지 replay |
| 추론 근거 추적 | 어느 이벤트가 판단을 바꿨는지 불명 | plan_version 별 전체 로그 보존 |
| TypeDB 연동 | 트랜잭션 충돌 위험 | 읽기 전용 쿼리 + delta 오버레이 |