WebSocket 이벤트는 상태 원천이 아니다

WebSocket 이벤트는 변경을 빠르게 알리는 신호로 사용하고, 최종 업무 상태는 영속 저장소나 그 저장소를 읽는 권위 있는 조회 API로 다시 확정한다.

전송 프로토콜과 상태 동기화의 차이

  • RFC 6455는 WebSocket을 TCP 위의 양방향 메시지 전송 프로토콜로 정의하고 비정상 연결 종료와 재연결을 별도로 다룬다.
  • RFC 자체에는 애플리케이션 상태의 영속 저장, 누락 구간 재생이나 재연결 뒤 상태 동기화 계약이 없다.
  • Vigilantis 원문은 이 전송 특성과 프로젝트의 영속 상태 조회 계약을 결합해 같은 원칙을 적용했다.

이벤트 수신 뒤 상태를 확정하기

  • 이벤트에는 상태 전체보다 식별자와 변경 종류를 싣는다.
  • 이벤트 수신 뒤 권위 있는 조회 API에서 최신 상태를 읽는다.
  • event_id 또는 버전으로 중복과 역전을 처리한다.
  • 재연결 시 snapshot 조회나 명시적 replay 계약으로 누락을 복구한다.
  • 영속 상태 commit 이후 이벤트를 발행한다.

내구성 있는 이벤트 로그를 원천으로 삼는 경우

애플리케이션이 순서·내구성·cursor·replay를 별도 프로토콜로 보장한다면 이벤트 로그를 원천으로 삼을 수 있다. 그래도 원천은 WebSocket 연결 자체가 아니라 그 뒤의 내구성 있는 로그다.

승격 원문

  • C:/labs/team/vigilantis/obsidian-vault/40 Knowledge/Atomic/WebSocket 이벤트는 상태 원천이 아니다.md

연결