Event-Driven 아키텍처 와 Pub/Sub 모델

개념이 헷갈려 간단하게 정리해보겠다..

 

두 개념 모두 분산 환경에서 메시지 교환 방식을 효과적으로 관리하는데 사용되는 패턴이다.

 

Event-Driven Architecture (EDA)

시스템이 특정 이벤트에 반응하여 동작하는 방식이다.

이벤트는 시스템의 상태가 변경되었음을 나타내고,

해당 이벤트는 다른 구성 요소가 구독하거나 반응할 수 있다.

 

이벤트의 생성, 감지, 소비를 중심으로 하는 아키텍처인 것이다..

따라서 비동기성, 느슨한 결합 등의 특징이 있다.

 

Pub/Sub Model

Event-Driven Architecture 에 속하는 특정 유형이라 볼 수 있다.

Publisher 는 이벤트 또는 메시지를 생성하고..

Subscriber 는 해당 메시지를 수신한다.

Publisher 와 Subscriber 사이에 직접적인 연결이 없으며(느슨한 결합)

메시지 브로커와 같은 중간 매개체가 중계하게 된다. (비동기성)

 

Pub/Sub Model 에는 Push Model, Pull Model 이 있는데

Push 모델은 중간 매개체가 직접 Subscriber 에게 메시지를 밀어 넣어 주는 모델이고,

Pull 모델은 Subscriber 가 중간 매개체에 있는 메시지를 가져가는 모델이다.

Push 모델로 대표적인 것은 Redis 의 Pub/Sub 이 있고,

Pull 모델로 대표적인 것은 Redis 의 Streams, Kafka 등이 있다.

'대규모 시스템 설계' 카테고리의 다른 글

시스템 설계 고민 2  (0) 2023.06.09
시스템 설계 고민 1  (0) 2023.06.08
Hexagonal Architecture 정리  (0) 2023.05.15
CQRS Pattern  (0) 2023.02.15
Saga Pattern (feat. MSA)  (0) 2023.02.13