diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..0273b19 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,25 @@ +sequenceDiagram + participant User + participant Payment Gateway + participant Database + participant Service + + User->>Service: Initiate Payment + Service->>Payment Gateway: Send Payment Request + alt Successful Payment + Payment Gateway-->>Service: Confirm Payment + Service->>Database: Record Payment + Database-->>Service: Payment Recorded + Service-->>User: Payment Success + else External Payment Failed + Payment Gateway-->>Service: Payment Failed + Service-->>User: Payment Failed + else Database Failure + Service->>Database: Attempt to Record Payment + Database-->>Service: Database Error + Service-->>User: Unable to process payment + end + Service->>Database: Commit + alt Rollback Required + Database->>Database: Rollback Changes + end \ No newline at end of file