EventDrivenDevelop

  • 확장성이 뛰어나고 분리되어 있으며 반응성이 뛰어난 시스템을 구축하는 것을 목표로 한다.

EDD

EDD란?

  • 구성 요소 간 주요 통신 수단으로 이벤트의 활용을 강조
  • 이벤트 중심 시스템에서 구성 요소는 이벤트를 비동기적으로 방출하고 소비
  • 느슨한 결합, 확장성, 실시간 응답을 가능하게 한다.

주요 개념

  • 이벤트:
    • 시스템 내에서 중요한 발생 또는 변경 사항을 나타낸다.
    • 이벤트 관련 정보를 캡슐화하며 여러 컴포넌트나 시스템에서 사용할 수 있다.
    • 이벤트는 이벤트 로그에 저장되어 이벤트 재생 및 복구가 가능한 경우가 많다.
  • 이벤트 핸들러:
    • 특정 이벤트에 반응하고 적절한 작업을 실행할 책임이 있다.
    • 이벤트를 구독하고 이벤트를 수신하면 필요 작업을 수행
    • 시스템 상태를 업데이트 하거나 다른 이벤트를 트리거하거나 다운스트림 프로세스를 호출할 수 있다.
  • 이벤트 소싱:
    • 애플리케이션의 상태가 일련의 이벤트에서 파생되는 EDD에서 일반적으로 사용하는 기술
    • 현재 상태 유지 대신 시스템에 대한 모든 변경 사항이 이벤트로 표시
    • 이벤트를 재생함으로써 시스템은 언제든지 상태를 재구축

DDD와 결합의 이점

  1. 느슨하게 결합된 아키텍쳐
  2. 리액티브하고 확장 가능한 시스템
  3. EventDriven 도메인 모델