Event Driven Architecture
- Event Driven Architecture 는 두 시스템 간에 통신시 이벤트를 사용하는 구조.
- 이벤트는 과거에 발생한 사실을 의미.
- 그래서 보통 주문함, 실패함, 취소함 처럼 과거형으로 표현된다.
다음의 3가지 구성요소로 이루어진다.
- 이벤트 생산자
- 이벤트 소비자
- 이벤트 브로커(또는 라우터)
- 생산자는 이벤트 생성해서 브로커에 전달하고, 브로커는 해당 이벤트를 관심있는 소비자에 전달.
- 이벤트는 메시지의 한 형태로도 볼 수 있다.
- 이벤트를 전달하는데 보통 메시징 기술을 쓰는데 카프카는 이벤트 브로커로 많이 활용된다.
- 이벤트 아키텍처의 장점 중 하나는 생산자와 소비자가 직접 연결되지 않고 브로커를 통해 간접적으로 연결된다는 점.
- 덕분에 서로 간섭없이 독립 배포 가능하고, 새로운 소비자 추가도 용이.
- 반면, 이벤트가 중간 브로커를 거치기 때문에 이벤트의 처리 상태를 추적하려면 별도의 추가 수단 필요할 수 있다.