피드로 돌아가기
Dev.toBackend
원문 읽기
Event Sourcing 도입을 통한 영화 스케줄링 이력 추적 및 Read Model 유연성 확보
Just Shipped FilmTailor's Scheduling Feature and Chose Event Sourcing. Sorry Not Sorry
AI 요약
Context
영화 제작 스케줄의 빈번한 변경 이력 추적이 필수적인 도메인 특성 분석. 단순 CRUD 구조로는 데이터 오버라이트로 인한 변경 히스토리 소실 및 Audit Log와 메인 테이블 간의 데이터 불일치 위험 존재.
Technical Solution
- 상태 저장 대신 모든 변경 사항을 Immutable Event로 기록하는 Event Sourcing 아키텍처 채택
- Audit Log를 별도 구축하지 않고 Event Store 자체를 Single Source of Truth로 정의하여 데이터 정합성 확보
- 동일한 Event Stream을 여러 Read Model로 투영하는 Projection 기법을 통한 UI 맞춤형 데이터 뷰 제공
- Marten과 PostgreSQL 조합을 통해 별도의 전용 DB 도입 없이 운영 복잡도를 낮춘 Event Store 구현
- Projection 코드 수정 후 전체 이벤트를 재실행하여 Read Model을 즉시 재구성하는 Schema Evolution 전략 적용
실천 포인트
- 변경 이력이 단순 로그가 아닌 핵심 비즈니스 요구사항인지 검토 - Read Model의 요구사항이 빈번하게 변경될 가능성이 있는지 분석 - 인프라 운영 비용과 기술적 이득 사이의 Trade-off를 고려하여 전용 Event Store 대신 RDBMS 기반 라이브러리(Marten 등) 검토