mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-27 23:46:36 +01:00
64 lines
1.7 KiB
Markdown
64 lines
1.7 KiB
Markdown
# Strategies
|
|
|
|
## Dynamic Strategy
|
|
|
|
The **Dynamic Strategy** displays a waiting page while your session starts.
|
|
|
|

|
|
|
|
?> 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
|
|
``` |