MSA/Event Driven Architecture

개요Event Driven Architecture는 MSA에서 Producer가 여러 Consumer 서비스를 직접 호출해야 했던 구조에서 Event Broker 하나에만 이벤트를 전송하면 되는 구조로 개선했다는 것이 가장 큰 특징이다. 이로 인해 서비스가 느슨하게 결합(Loosely Coupled)되고, 결합도가 낮아진다. 다음 문단부터 정리할 EDA의 장단점은 이러한 EDA의 특징 때문에 생기는 것이라고 이해할 수 있다.장점확장성시스템에 부하가 증가할 때 Producer와 Consumer를 scale out(수평적 확장) 할 수 있다.Producer가 Counsumer를 직접 호출하지 않기 때문에 시스템을 크게 재설계하지 않아도 된다유연성새로운 이벤트나 처리 로직을 추가할 때 기존 컴포넌트에 미치는 ..
정의시스템 컴포넌트 간의 통신을 위해 이벤트를 생성하고 감지하는 아키텍처이벤트: 무언가 발생한 것시스템의 상태 변화Event Notification으로 전달명령과 관련된 데이터를 포함할 수도 있고, 단지 무언가 발생했다는 알림일수도 있다불변(immutable) 이다⇒ Event Sourcing의 원천이 된다명령(Command): 다른 시스템에게 응답을 요청하는 것Event Sourcing데이터 변경 이벤트를 저장하고 시스템의 상태를 재구축하는 방식데이터 변경 히스토리 추적데이터 일관성 보장구성 요소Producer: 이벤트 생성Broker: 이벤트를 적절한 Consumer로 라우팅Consumer: 이벤트를 수신하고 처리이벤트 기반 아키텍처나 메세지 기반 아키텍처에서는 Publisher-Subscriber ..