khu-khlug / sight-backend

쿠러그의 백엔드 어플리케이션 저장소
1 stars 0 forks source link

nestjs/cqrs의 AggregateRoot 사용하여 도메인 적용 #15

Closed Coalery closed 2 months ago

Coalery commented 1 year ago

이벤트를 나타내고 이를 이벤트 핸들러에 태우기 위해 이벤트 버스가 필요합니다.

이를 위해 @nestjs/cqrs 라이브러리의 AggreegateRootEventPublisher를 사용할 수 있습니다.

매퍼에서 EventPublisher#mergeObjectContext 사용해서 도메인 내려주고, 커밋은 abstract repository 만들어서 그 안에서 하면 될 거 같습니다.

참고: https://docs.nestjs.com/recipes/cqrs

Coalery commented 2 months ago

설계가 변경되어, 이벤트를 사용하지 않도록 방향을 잡았습니다.

이벤트 자체가 뒷단 rxjs에 의해 비동기적으로 일어나다보니 관리하기 어렵고, 트랜잭션을 별도로 관리해주어야 하여 예상하지 못하는 사이드 이펙트가 발생할 수 있어, 이벤트를 사용하지 않는 방향으로 나아갈 예정입니다.