sequenceDiagram participant User participant Payment Service participant DB participant External Gateway User->>Payment Service: Initiate Payment activate Payment Service Payment Service->>DB: Begin Transaction activate DB DB-->>Payment Service: Transaction Started deactivate DB Payment Service->>External Gateway: Request Payment Authorization activate External Gateway alt Successful Authorization External Gateway-->>Payment Service: Authorization Success Payment Service->>DB: Commit Transaction activate DB DB-->>Payment Service: Transaction Committed deactivate DB Payment Service-->>User: Payment Successful else Authorization Failed External Gateway-->>Payment Service: Authorization Failure Payment Service->>DB: Rollback Transaction activate DB DB-->>Payment Service: Transaction Rolled Back deactivate DB Payment Service-->>User: Payment Failed end autonumber