diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..3e65da5 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,38 @@ +```mermaid +sequenceDiagram + participant User + participant Controller + participant Service + participant Gateway + participant Database + + User->>Controller: 결제 요청 + Controller->>Service: 결제 처리 요청 + Service->>Gateway: 결제 요청 전달 + Gateway-->>Service: 결제 성공 + Service->>Database: 결제 정보 저장 + Database-->>Service: 저장 완료 + Service-->>Controller: 결제 성공 응답 + Controller-->>User: 결제 성공 메시지 + + alt External Failure + Service->>Gateway: 결제 요청 전달 + Gateway-->>Service: 결제 실패 + Service-->>Controller: 결제 실패 응답 + Controller-->>User: 결제 실패 메시지 + end + + alt DB Failure + Service->>Gateway: 결제 요청 전달 + Gateway-->>Service: 결제 성공 + Service->>Database: 결제 정보 저장 + Database-->>Service: 저장 실패 + Service-->>Controller: 결제 처리 실패 응답 + Controller-->>User: 결제 처리 실패 메시지 + end + + Service->>Database: Transaction Commit + note right of Database: 저장 완료 + Service->>Database: Transaction Rollback + note right of Database: 오류 발생 시 롤백 +``` \ No newline at end of file