Event Driven Architecture 는 두 시스템 간에 통신시 이벤트를 사용하는 구조. 이벤트는 과거에 발생한 사실을 의미. 그래서 보통 주문함, 실패함, 취소함 처럼 과거형으로 표현된다.

다음의 3가지 구성요소로 이루어진다.

  • 이벤트 생산자
  • 이벤트 소비자
  • 이벤트 브로커(또는 라우터) 생산자는 이벤트 생성해서 브로커에 전달하고, 브로커는 해당 이벤트를 관심있는 소비자에 전달.

이벤트는 메시지의 한 형태로도 볼 수 있다. 이벤트를 전달하는데 보통 메시징 기술을 쓰는데 카프카는 이벤트 브로커로 많이 활용된다.

이벤트 아키텍처의 장점 중 하나는 생산자와 소비자가 직접 연결되지 않고 브로커를 통해 간접적으로 연결된다는 점. 덕분에 서로 간섭없이 독립 배포 가능하고, 새로운 소비자 추가도 용이. 반면, 이벤트가 중간 브로커를 거치기 때문에 이벤트의 처리 상태를 추적하려면 별도의 추가 수단 필요할 수 있다.