더북(TheBook)

도메인 이벤트 발행

이벤추에이트 트램은 도메인 이벤트 발행/구독 API를 제공합니다. 도메인 이벤트란 비즈니스 객체를 생성, 수정, 삭제 시 애그리거트(비즈니스 객체)가 발생시킨 이벤트입니다(5장). 서비스는 DomainEventPublisher 인터페이스를 이용하여 도메인 이벤트를 발행합니다.

DomainEventPublisher domainEventPublisher;
String accountId = ...;
DomainEvent domainEvent = new AccountDebited(...);
domainEventPublisher.publish("Account", accountId, Collections.singletonList(domainEvent));

서비스는 DomainEventDispatcher 클래스로 도메인 이벤트를 소비합니다.

DomainEventHandlers domainEventHandlers = DomainEventHandlersBuilder.forAggregateType("Order").onEvent(AccountDebited.class, domainEvent -> { ... }).build();

new DomainEventDispatcher("eventDispatcherId", domainEventHandlers, messageConsumer);

이벤추에이트 트램은 이벤트는 물론 커맨드/응답 기반의 메시징 등 고수준의 메시징 패턴도 지원합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.