diff --git a/.forge/iss-155aa95ea6df-attempt-1.md b/.forge/iss-155aa95ea6df-attempt-1.md new file mode 100644 index 0000000..8eb76f5 --- /dev/null +++ b/.forge/iss-155aa95ea6df-attempt-1.md @@ -0,0 +1,3 @@ +# iss-155aa95ea6df-attempt-1 + +Forge 이슈 작업 브랜치 `forge/iss-155aa95ea6df-attempt-1`. diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..5d7e5c3 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,25 @@ +```mermaid +sequenceDiagram + participant User + participant PaymentGateway + participant Bank + + %% Normal flow + User ->> PaymentGateway: Request Payment + PaymentGateway ->> Bank: Process Payment + Bank -->> PaymentGateway: Payment Approved + PaymentGateway -->> User: Payment Confirmation + + %% External failure branch + User ->> PaymentGateway: Request Payment + PaymentGateway ->> Bank: Process Payment + Bank -->> PaymentGateway: Payment Declined + PaymentGateway -->> User: Payment Declined Message + + %% DB failure branch + User ->> PaymentGateway: Request Payment + PaymentGateway ->> Bank: Process Payment + Bank -->> PaymentGateway: DB Error + PaymentGateway -->> User: Payment Failed Due to Error + Note over PaymentGateway: Rollback transaction if needed +``` \ No newline at end of file