Reduce Latency

Published on: September 11, 2025

Tags: #latency #performance


Database Indexing

sequenceDiagram
    participant Client
    participant Database

    Client->>Database: Query for record '30'
    Note right of Database: Uses index to quickly find the location of record '30'
    Database-->>Client: Returns Record '30' 

Caching

sequenceDiagram
    participant Client
    participant Application
    participant Cache
    participant Database

    Client->>Application: Request for data

    alt Cache Hit (Data is in the cache)
        Application->>Cache: Query for data
        Cache-->>Application: Returns data
    else Cache Miss (Data is NOT in the cache)
        Application->>Cache: Query for data
        Cache-->>Application: Not Found
        Application->>Database: Query for data
        Database-->>Application: Returns data
        Application->>Cache: Store data for future requests
    end

    Application-->>Client: Returns data

Load Balancing

graph TD
    subgraph Users
        U1(User 1)
        U2(User 2)
        U3(User 3)
    end

    subgraph Backend Servers
        S1(Server A)
        S2(Server B)
        S3(Server C)
    end

    LB(Load Balancer)

    U1 --> LB
    U2 --> LB
    U3 --> LB

    LB --> S1
    LB --> S2
    LB --> S3

Content Delivery Network (CDN)

graph TD
    subgraph "User Region A"
        UserA(Users)
    end
    subgraph "User Region B"
        UserB(Users)
    end

    OS(Origin Server)

    CDNA(CDN Edge Server A)
    CDNB(CDN Edge Server B)

    UserA --> CDNA;
    UserB --> CDNB;

    CDNA -- Fetches/Caches Content --> OS;
    CDNB -- Fetches/Caches Content --> OS;

Asynchronous Processing

sequenceDiagram
    participant Client
    participant Server
    participant MessageQueue as Task Queue
    participant Worker

    Client->>Server: Request for a long-running task
    Server->>MessageQueue: Add task to queue
    Server-->>Client: Respond immediately (e.g., "Task accepted")
    MessageQueue->>Worker: Assign task
    Worker->>Worker: Process task in the background

Data Compression

sequenceDiagram
    participant Client
    participant Server

    Client->>Server: Request data
    Server->>Server: Retrieve data
    Server->>Server: Compress response data (e.g., using Gzip)
    Server-->>Client: Send compressed data
    Client->>Client: Decompress data and render

Share this post

Share on X  •  Share on LinkedIn  •  Share via Email