복붙노트

[SPRING] DDD에서 도메인 로직과 이벤트 간의 트랜잭션을 어떻게 관리합니까?

SPRING

DDD에서 도메인 로직과 이벤트 간의 트랜잭션을 어떻게 관리합니까?

DDD 및 이벤트 소스 프로그래밍에 대해 공부하고 있습니다.

도메인 로직을 호출 할 때 (예 : Order.placeOrder ()) 이벤트 (예 : OrderPlaced)를 게시하는 한 예를 보았습니다. 이벤트는 MQ로 이벤트 저장소로 전송됩니다.

도메인 로직 (Order.placeOrder ())은 원 자성 API 여야하며, 트랜잭션 관리자로 Spring을 사용한다면 @Transactional 어노테이션을 가져야한다.

그리고 지금 내 질문은 :

해결법

  1. ==============================

    1.신뢰할 수있는 시스템을 가지려면 다음 두 가지 속성이 있어야합니다.

    신뢰할 수있는 시스템을 가지려면 다음 두 가지 속성이 있어야합니다.

    이를 달성 할 수있는 다음과 같은 가능성이 있습니다. 모두 내가 직접 사용했거나 프로젝트에서 사용되는 것으로 나타났습니다.

    해결책 3은 시스템의 각 부분이 고장 행동에 대한 보장을주의 깊게 설계하고 검토해야하기 때문에 옳은 것으로 간주하기가 가장 어려울 것입니다. 그러나 일단 작동하면 매우 우아한 솔루션입니다.

    그건 그렇고, 나는 스프링 어노테이션을 도메인 객체에 추가해야하는 것이 아니라 각각의 앱 서비스에 추가하는 것에 동의하지 않는다. 이것은 측근으로 만.

  2. from https://stackoverflow.com/questions/33117902/how-manage-transaction-between-domain-logic-and-events-in-ddd by cc-by-sa and MIT license