반응형

message processing 2

5편. Exactly-once를 포기해야 하는 이유

Exactly-once는 왜 매력적으로 보이는가Event-driven 시스템을 설계하다 보면 자연스럽게 이런 요구가 등장한다.이 이벤트는 정확히 한 번만 처리되면 좋겠다이 요구는 합리적으로 보인다.중복 처리 걱정이 없다상태 불일치가 사라진다로직이 단순해진다문제는 이 요구가 Event-driven 시스템의 전제와 정면으로 충돌한다는 점이다.Exactly-once가 의미하는 것Exactly-once는 흔히 오해된다.이벤트가 한 번만 전달된다Consumer가 한 번만 실행된다하지만 실제로 의미하는 바는 이것이다.결과가 한 번만 반영된다문제는 이 결과가여러 시스템에 걸쳐 있고여러 저장소에 나뉘어 있으며여러 시점에 반영된다라는 점이다.왜 Exactly-once는 구조적으로 불가능한가Exactly-once가 어려운..

5편. Exactly-once는 왜 그렇게 어려운가

Exactly-once는 기능이 아니라 환상에 가깝다분산 시스템을 다루다 보면 자주 듣는 요구가 있다.메시지를 정확히 한 번만 처리하고 싶다표현은 단순하지만, 이 요구는 분산 시스템의 거의 모든 전제와 충돌한다.이 글에서는 Exactly-once를 “지원 여부”가 아니라 왜 시스템 전반에서는 성립하기 어려운 개념인지를 살펴본다.Exactly-once를 어떻게 오해하고 있는가Exactly-once는 흔히 다음과 같이 오해된다.메시지가 한 번만 전달된다소비자가 한 번만 실행된다중복 처리가 절대 발생하지 않는다하지만 분산 시스템에서 Exactly-once가 의미하는 바는 이와 다르다.같은 결과가 한 번만 반영된다문제는 이 결과가 여러 시스템과 상태에 걸쳐 존재한다는 점이다.왜 At-least-once가 기본값..

Distributed System 2026.02.01
반응형