커밋 단위
주문 생성, 재고 차감, 결제 상태 저장처럼 함께 성공해야 하는 쓰기 작업만 묶습니다.
Transaction Guardrail
TypeORM QueryRunner와 Prisma $transaction을 쓸 때 DB 작업, 외부 부수 효과, 재시도 지점을 분리해 긴 잠금과 중복 처리를 피합니다.
주문 생성, 재고 차감, 결제 상태 저장처럼 함께 성공해야 하는 쓰기 작업만 묶습니다.
TypeORM은 QueryRunner, Prisma는 interactive transaction으로 같은 connection 안의 작업을 제한합니다.
이메일, 웹훅, 결제 승인처럼 롤백되지 않는 작업은 outbox나 큐 뒤로 보냅니다.
unique constraint, deadlock, timeout을 구분해 멱등 키와 보상 작업을 준비합니다.