manager 선택은 실제 원자화할 resource를 따른다

프레임워크 이름이 아니라 어느 resource를 한 commit으로 묶을지와 여러 local resource 사이의 일관성 전략을 기준으로 고른다.

한 업무 경계에서 실제로 원자화할 resource는 무엇인가?
ONE JDBC

DataSourceTransactionManager

하나의 DataSource Connection을 commit한다.

ONE JPA

JpaTransactionManager

하나의 persistence context와 DB transaction을 관리한다.

MULTI LOCAL

Outbox 또는 Saga

각 local commit을 durable message와 보상으로 연결한다.

STRICT XA

JTA/XA 평가

강한 원자성이 필수일 때 운영·장애 비용까지 감수한다.

핵심: 여러 resource가 존재한다는 사실과 여러 resource를 하나의 원자 경계로 묶을 수 있다는 사실은 다르다.