Files
sablier/docs/strategies.md
2025-11-12 00:38:24 -05:00

1.7 KiB

Strategies

Dynamic Strategy

The Dynamic Strategy displays a waiting page while your session starts.

Demo

?> This strategy is ideal for users accessing a frontend directly, as they'll see a loading page while their services start.

@startuml

User -> Proxy: Website Request
Proxy -> Sablier: Reverse Proxy Plugin Request Session Status
Sablier -> Provider: Request Instance Status
Sablier <-- Provider: Response Instance Status
Proxy <-- Sablier: Returns the X-Sablier-Status Header

alt `X-Sablier-Status` value is `not-ready`

    User <-- Proxy: Serve the waiting page
    loop until `X-Sablier-Status` value is `ready`
        User -> Proxy: Self-Reload Waiting Page
        Proxy -> Sablier: Reverse Proxy Plugin Request Session Status
        Sablier -> Provider: Request Instance Status
        Sablier <-- Provider: Response Instance Status
        Proxy <-- Sablier: Returns the waiting page
        User <-- Proxy: Serve the waiting page
    end

end

User <-- Proxy: Content 

@enduml

Blocking Strategy

The Blocking Strategy holds the request until your session is ready.

?> This strategy is ideal for API communication, where clients expect to wait for a response.

@startuml

User -> Proxy: Website Request
Proxy -> Sablier: Reverse Proxy Plugin Request Session Status
Sablier -> Provider: Request Instance Status

alt `Instance` status is `not-ready`
    Proxy -> Sablier: Reverse Proxy Plugin Request Session Status
    Sablier -> Provider: Request Instance Status
    Sablier <-- Provider: Response Instance Status
    Proxy <-- Sablier: Returns the waiting page
end

Sablier <-- Provider: Response Instance Status
Proxy <-- Sablier: Response 

User <-- Proxy: Content 

@enduml