'언젠가 읽기' 컨텐츠는 논문이나 영문 컨텐츠 등 언젠가 읽으려고 즐겨찾기 하고선
읽지 않고 계속 미룰만한 컨텐츠를 읽고 요약하거나 소개합니다.
궁극적 일관성은 까다롭다
언젠가 읽기
2025. 3. 10. AM 11:30:11
사건적 일관성(Eventual Consistency)이란?
사건적 일관성은 시스템의 모든 부분이 동일한 상태에 도달하게 되는 시스템 조건을 의미합니다. 비록 지연이나 실패로 인해 일시적으로 불일치 상태가 발생할 수 있지만, 시간이 지나면 모든 부분이 일관된 상태를 유지하게 됩니다.
사건적 일관성의 도전과 기회
어려운 점
분산 시스템에서는 사건적 일관성을 회피할 수 없습니다.
좋은 소식
적절한 패턴을 따르면 사건적 일관성은 분산 시스템의 확장성을 높이는 데 도움이 됩니다.
유용한 패턴들
1. 이벤트 기반 사건적 일관성(Event-Based Eventual Consistency)
이 패턴에서는 서비스가 상태 변경 시 이벤트를 발생시키고, 다른 서비스는 이 이벤트를 수신하여 데이터를 업데이트합니다.
서비스 간의 직접적인 통신이 없기 때문에 느슨하게 결합되어 확장성이 뛰어나지만, 모든 서비스가 최신 상태를 반영하기까지 약간의 지연이 발생하여 사건적 일관성이 유지됩니다.
예시
전자상거래 플랫폼에서 사용자의 계정 프로필을 관리하는 서비스와 추천 엔진을 처리하는 별도의 서비스가 있다고 가정해봅시다.
- 사용자가 프로필에서 선호도를 업데이트하면 "profile-updated"와 같은 이벤트가 발생합니다.
- 추천 서비스는 이 이벤트를 수신하여 데이터베이스를 업데이트하고 새로운 선호도를 반영합니다.
- 프로필 업데이트와 추천 업데이트 사이에 짧은 지연이 발생하여 사건적 일관성이 유지됩니다.
함께 읽으면 좋은 참고 자료
- 이벤트 소싱(Event Sourcing)
- 마이크로서비스 아키텍처(Microservices Architecture)
- 분산 시스템 원리