diff --git a/.forge/iss-155aa95ea6df-attempt-2.md b/.forge/iss-155aa95ea6df-attempt-2.md new file mode 100644 index 0000000..b17bde5 --- /dev/null +++ b/.forge/iss-155aa95ea6df-attempt-2.md @@ -0,0 +1,3 @@ +# iss-155aa95ea6df-attempt-2 + +Forge 이슈 작업 브랜치 `forge/iss-155aa95ea6df-attempt-2`. diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..7aeb9e7 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,37 @@ +```mermaid +sequenceDiagram + participant User as User + participant Checkout as Checkout Service + participant Payment as Payment Gateway + participant DB as Database + + %% Normal flow + User->>Checkout: Initiate Checkout + Checkout->>DB: Save Order + DB-->>Checkout: Order Confirmation + Checkout->>Payment: Process Payment + Payment-->>Checkout: Payment Success + Checkout->>User: Payment Successful + + %% External failure + User->>Checkout: Initiate Checkout + Checkout->>DB: Save Order + DB-->>Checkout: Order Confirmation + Checkout->>Payment: Process Payment + Payment-->>Checkout: Payment Failure + Checkout->>DB: Rollback Order + DB-->>Checkout: Order Rollback + Checkout->>User: Payment Failed + + %% DB failure + User->>Checkout: Initiate Checkout + Checkout->>DB: Save Order + DB-->>Checkout: Order Confirmation + Checkout->>Payment: Process Payment + Payment-->>Checkout: Payment Success + Checkout->>DB: Commit Order + DB-->>Checkout: Error + Checkout->>DB: Rollback Order + DB-->>Checkout: Order Rollback + Checkout->>User: Payment Successful, Order Error +``` \ No newline at end of file