목록 보기
Vizend 구독 기능 설계 구현
아키텍처

Vizend 구독 기능 설계 구현

넥스트리
넥스트리
2026년 7월 28일

두줄요약

Showcase가 자기 자신을 배포 대상으로 삼는 구조에서 발생하는 정합성 문제를 상태 머신과 이벤트 분할로 해결했습니다. 재기동 후 버전 검증과 멱등 발행, GID 기반 식별로 분산 배포의 일관성을 확보했습니다.

문제 상황

  • Showcase 자체가 구독 가능한 Kollex로 패키징되어, 구독 처리 주체와 교체 대상이 같은 자기 참조적 배포 구조
  • 일반 구독과 달리 프로세스 재기동을 가로지르는 상태 정합성, 완료 판정, 이벤트 중복 발행 문제가 발생
  • 멀티테넌트 환경에서 로컬 식별자 충돌과 External Drama 처리 분리도 함께 필요

구조와 흐름

  • 일반 구독은 Preparing → SyncingMetro → Completed/Failed의 단순 경로
  • Builtin 구독은 PreparingSelfDeploy, DeployingSelf, SelfDeployVerified, FinalizingMetro로 분리된 상태 머신으로 진행
  • 상태와 최종 이벤트 페이로드를 영속화해 재기동 후에도 라이프사이클을 이어받는 구조

해결 방법

  • Metro로의 1차 이벤트와 self-deploy 이벤트를 분리해, showcase Drama가 완전히 수렴되기 전의 거짓 완료를 방지
  • ApplicationReadyEvent에서 기대 이미지 버전과 관측 버전을 비교해 자기 배포 성공 여부를 검증
  • 최종 이벤트는 스케줄러로 비동기 발행하고 멱등 가드로 중복 발행을 억제

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...