diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..51097da --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,29 @@ +```mermaid +sequenceDiagram + participant User + participant PaymentGateway + participant Database + opt Successful Transaction + User->>PaymentGateway: Initiate Payment + PaymentGateway-->>User: Payment Confirmation + User->>Database: Update Transaction Record + Database-->>User: Transaction Updated + User->>User: Payment Succeeded + end + opt External Failure + User->>PaymentGateway: Initiate Payment + PaymentGateway-->>User: Payment Error + User->>User: Payment Failed + end + opt DB Failure + User->>PaymentGateway: Initiate Payment + PaymentGateway-->>User: Payment Confirmation + User->>Database: Update Transaction Record + Database-->>User: DB Error + User->>PaymentGateway: Cancel Transaction + PaymentGateway-->>User: Transaction Canceled + end + %% Commit and Rollback%% + Note over User, PaymentGateway: Commit after successful transaction + Note over User, Database: Rollback on DB failure +``` \ No newline at end of file