Skip to content

Latest commit

 

History

History
33 lines (27 loc) · 1.37 KB

File metadata and controls

33 lines (27 loc) · 1.37 KB
sequenceDiagram
    participant Client as Client Application
    participant ChatSession as ChatSession
    participant MailboxManager as MailboxManager
    participant MessageBatcher as MessageBatcher
    participant Server as Transport Server

    Note over Client, Server: Message Batching Configuration: MaxBatchSize 10, BatchTimeout 5s

    Client->>ChatSession: Send Message 1
    ChatSession->>MailboxManager: SendAsync(message1)
    MailboxManager->>MessageBatcher: AddToBatch(message1)

    Client->>ChatSession: Send Message 2
    ChatSession->>MailboxManager: SendAsync(message2)
    MailboxManager->>MessageBatcher: AddToBatch(message2)

    Client->>ChatSession: Send Message 3
    ChatSession->>MailboxManager: SendAsync(message3)
    MailboxManager->>MessageBatcher: AddToBatch(message3)

    Note over MessageBatcher: Batch timeout reached or max size

    MessageBatcher->>MessageBatcher: ProcessBatch()
    MessageBatcher->>MessageBatcher: CompressBatch(messages)
    MessageBatcher->>MessageBatcher: EncryptBatch(compressed_batch)
    MessageBatcher->>MailboxManager: SendBatch(encrypted_batch)
    MailboxManager->>Server: TransportSend(batch)
    MailboxManager->>ChatSession: Batch sent confirmation
    ChatSession->>Client: Messages delivered efficiently
    Note over Client, Server: Benefits - Reduced network overhead, better throughput, optimized encryption
Loading