Event : 시스템 내부,외부에서 발생한 주목할 만한 상태의 변화
Driven : 주도, 기반
Architecture : 동작 방식
Event Driven Architecture란 이벤트의 생산, 감지, 소비 및 반응 또는 시스템 상태의 중대한 변화를 지원하는 소프트웨어의 모델 혹은 아키텍처 패러다임이다. 복잡성과 역동성에 가장 효율적으로 대응할 수 있는 모델로 프로그램이 어떤 유저의 액션(이벤트)에 대한 반응으로 동작하는 패턴이다. 이벤트 기반 시스템은 이벤트 루프에서 이벤트를 처리하며, 이벤트 루프는 장치로부터 입력이나, 내부경보를 기다리고 있다가 활동이 발생하면, 이벤트를 생성시킨다. 발생한 이벤트의 데이터를 수집하고, 데이터를 필요한 이벤트 핸들러로 발송한다.
ex) 영화 예매
고객 김씨 : D-3 좌석 결제 요청 ⇒ (해당 좌석이 실제 예매 가능한지 파악) ⇒ 예매 완료 고객 이씨 : D-3 좌석 결제 요청 ⇒ (해당 좌석이 실제 예매 가능한지 파악) ⇒ 예매 진행중 ⇒ 결제 불가 처리 (트랜젝션, rollback)
위의 사례 처럼 다수의 사용자가 이벤트를 발생시키고, 이러한 결과는 또 다른 사용자 혹은 시스템을 실시간으로 변경시킨다.