Sequence Diagrams
Examples of sequence diagrams showing interactions between different actors
Basic Sequence Diagram
sequenceDiagram participant User participant Browser participant Server participant Database User->>Browser: Enter URL Browser->>Server: HTTP Request Server->>Database: Query Data Database-->>Server: Return Results Server-->>Browser: HTTP Response Browser-->>User: Display Page
Authentication Flow
sequenceDiagram actor User participant App participant Auth as Auth Service participant DB as Database User->>App: Login (email, password) App->>Auth: Validate Credentials Auth->>DB: Check User DB-->>Auth: User Data alt Valid Credentials Auth-->>App: JWT Token App-->>User: Login Success App->>App: Store Token else Invalid Credentials Auth-->>App: Error App-->>User: Login Failed end
API Communication
sequenceDiagram participant C as Client participant G as Gateway participant A as Auth Service participant S as API Server participant D as Database C->>G: Request + Token G->>A: Validate Token A-->>G: Token Valid G->>S: Forward Request activate S S->>D: Query Data D-->>S: Result Set S-->>G: Response deactivate S G-->>C: Final Response Note over C,D: All communication is encrypted
Loops and Conditions
sequenceDiagram participant Client participant Server participant Cache participant DB Client->>Server: Request Data loop Check Cache First Server->>Cache: Get from Cache alt Cache Hit Cache-->>Server: Cached Data Server-->>Client: Return Data else Cache Miss Server->>DB: Query Database DB-->>Server: Fresh Data Server->>Cache: Update Cache Server-->>Client: Return Data end end
Parallel Processing
sequenceDiagram participant User participant System participant ServiceA participant ServiceB participant ServiceC User->>System: Submit Request par Parallel Processing System->>ServiceA: Process A and System->>ServiceB: Process B and System->>ServiceC: Process C end ServiceA-->>System: Result A ServiceB-->>System: Result B ServiceC-->>System: Result C System->>System: Aggregate Results System-->>User: Combined Response
Activation Boxes
sequenceDiagram participant Browser participant Server participant Worker participant Queue Browser->>+Server: Upload File Server->>Server: Validate File Server->>+Queue: Add Job Queue-->>-Server: Job ID Server-->>-Browser: Upload Accepted Queue->>+Worker: Process Job Worker->>Worker: Transform File Worker->>Worker: Optimize Worker-->>-Queue: Job Complete Browser->>+Server: Check Status Server->>Queue: Get Job Status Queue-->>Server: Completed Server-->>-Browser: File Ready
Message Types
sequenceDiagram participant A as Service A participant B as Service B A->>B: Sync Request B-->>A: Sync Response A->>+B: Async Request Note right of B: Processing... B-->>-A: Async Response A--xB: Failed Request B-)A: Fire and Forget A--)B: Async Message Note over A,B: Different arrow types demonstrate various communication patterns