40 lines
No EOL
1.3 KiB
Markdown
40 lines
No EOL
1.3 KiB
Markdown
```mermaid
|
|
sequenceDiagram
|
|
participant User as 유저
|
|
participant PaymentService as 결제 서비스
|
|
participant PaymentGateway as 결제 게이트웨이
|
|
participant Database as 데이터베이스
|
|
|
|
User->>PaymentService: 결제 요청
|
|
PaymentService->>Database: 결제 정보 저장
|
|
activate Database
|
|
Database-->>PaymentService: 저장 완료
|
|
deactivate Database
|
|
|
|
alt 정상 흐름
|
|
PaymentService->>PaymentGateway: 결제 요청
|
|
activate PaymentGateway
|
|
PaymentGateway-->>PaymentService: 결제 성공
|
|
deactivate PaymentGateway
|
|
PaymentService->>User: 결제 완료
|
|
|
|
else 외부 실패
|
|
PaymentService->>PaymentGateway: 결제 요청
|
|
activate PaymentGateway
|
|
PaymentGateway-->>PaymentService: 결제 실패
|
|
deactivate PaymentGateway
|
|
PaymentService->>Database: 롤백
|
|
activate Database
|
|
Database-->>PaymentService: 롤백 완료
|
|
deactivate Database
|
|
PaymentService->>User: 결제 실패
|
|
end
|
|
|
|
else DB 실패
|
|
PaymentService->>Database: 결제 정보 저장
|
|
activate Database
|
|
Database-->>PaymentService: 저장 실패
|
|
deactivate Database
|
|
PaymentService->>User: 저장 실패
|
|
end
|
|
``` |