# Strategies ## Dynamic Strategy The **Dynamic Strategy** displays a waiting page while your session starts. ![Demo](assets/img/demo.gif) ?> This strategy is ideal for users accessing a frontend directly, as they'll see a loading page while their services start. ```plantuml @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. ```plantuml @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 ```