diff --git a/.forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1.md b/.forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1.md new file mode 100644 index 0000000..5bab659 --- /dev/null +++ b/.forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1.md @@ -0,0 +1,3 @@ +# iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1 + +Forge 이슈 작업 브랜치 `forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1`. diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..6c81673 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,35 @@ +--- +# 결제 전환 아키텍처 + +## 트랜잭션 시퀀스 다이어그램 + +```mermaid +sequenceDiagram + participant User + participant PaymentGateway + participant Database + participant Application + + User->>Application: 결제 요청 + Application->>Database: 트랜잭션 시작 + Application->>PaymentGateway: 결제 요청 + alt 정상 흐름 + PaymentGateway-->>Application: 결제 성공 + Application->>Database: 트랜잭션 커밋 + Database-->>Application: 커밋 완료 + Application-->>User: 결제 완료 + else 외부 실패 + PaymentGateway-->>Application: 결제 실패 + Application->>Database: 트랜잭션 롤백 + Database-->>Application: 롤백 완료 + Application-->>User: 결제 실패 + else DB 실패 + Application->>Database: 트랜잭션 롤백 + Database-->>Application: 롤백 실패 + Application-->>User: 시스템 오류 + end +``` + +## 주의사항 +- 외부 결제 gateway는 port interface 뒤에 두고 domain에서 adapter를 직접 참조하지 않는다. +--- \ No newline at end of file