diff --git a/.forge/iss-81c03d204ddd-attempt-1-run-c46c886cd339.md b/.forge/iss-81c03d204ddd-attempt-1-run-c46c886cd339.md new file mode 100644 index 0000000..3fbc70c --- /dev/null +++ b/.forge/iss-81c03d204ddd-attempt-1-run-c46c886cd339.md @@ -0,0 +1,3 @@ +# iss-81c03d204ddd-attempt-1-run-c46c886cd339 + +Forge 이슈 작업 브랜치 `forge/iss-81c03d204ddd-attempt-1-run-c46c886cd339`. diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..c4e14df --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,32 @@ +```mermaid +sequenceDiagram + participant User + participant PaymentGateway + participant PaymentService + participant Database + + User->>+PaymentService: Start Payment + PaymentService->>+PaymentGateway: Process Payment + PaymentGateway-->>-PaymentService: Payment Success + PaymentService->>Database: Record Payment + Database-->>-PaymentService: Payment Recorded + PaymentService-->>-User: Payment Confirmed + + %% External Failure + User->>+PaymentService: Start Payment + PaymentService->>+PaymentGateway: Process Payment + PaymentGateway-->>-PaymentService: Payment Failed + PaymentService-->>-User: Payment Failed + + %% DB Failure + User->>+PaymentService: Start Payment + PaymentService->>+PaymentGateway: Process Payment + PaymentGateway-->>-PaymentService: Payment Success + PaymentService->>Database: Record Payment + Database-->>-PaymentService: DB Failure + PaymentService-->>-User: Payment Processing Error + + %% Commit/Rollback + Note over PaymentService: Commit if successful + Note over PaymentService: Rollback if there's an error +``` \ No newline at end of file