1.4 KiB
1.4 KiB
sequenceDiagram
participant User
participant Controller
participant Service
participant Repository
participant Database
User->>Controller: 결제 요청
Controller->>Service: 결제 처리 요청
Service->>Repository: 결제 정보 저장
Repository->>Database: DB에 저장
Database-->>Repository: 저장 완료
Repository-->>Service: 저장 완료
Service-->>Controller: 처리 완료
Controller-->>User: 결제 완료
%% 외부 실패 흐름
User->>Controller: 결제 요청
Controller->>Service: 결제 처리 요청
Service->>Repository: 결제 정보 저장
Repository->>Database: DB에 저장
Database-->>Repository: 저장 실패
Repository-->>Service: 저장 실패
Service-->>Controller: 처리 실패
Controller-->>User: 결제 실패
%% DB 실패 흐름
User->>Controller: 결제 요청
Controller->>Service: 결제 처리 요청
Service->>Repository: 결제 정보 저장
Repository->>Database: DB에 저장
Database-->>Repository: DB 오류
Repository-->>Service: DB 오류
Service-->>Controller: 처리 실패
Controller-->>User: 결제 실패
%% Commit/Rollback 경계
alt 정상 흐름
Service->>Database: Commit
else 외부 실패
Service->>Database: Rollback
else DB 실패
Service->>Database: Rollback
end