You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need a way to allow us to provide multiple deepstream connection points to the client to increase resilience.
Given different nodes can be created and shutdown automatically when auto scaling this will preferably not be something that is hard coded in the client, but rather uses a discovery mechanism.
Note: Only api change is when connecting to deepstream initially
Note: Heartbeat on servers is configurable
The two requirements are:
Must work in a distributed fashion ( No central control )
Server lists should not be stored in cache and storage, instead just in memory ( This helps with distribution by avoiding concurrency issues )
Deepstreams that are no longer available should be deleted from lists in a reliable manner and time
Client
1: Provide multiple initial deepstream connection endpoints
2: Request from a deepstream a list of all current deepstream nodes available ( Using a http get request )
get('http://deepstream1/available-servers')// Returns array of all deepstream urls
3: Figure out which one has best score
A score is currently a combination of:
* Latency
* Resource usage on deepstream machine ( CPU, memory, logged in users, etc )
We need a way to allow us to provide multiple deepstream connection points to the client to increase resilience.
Given different nodes can be created and shutdown automatically when auto scaling this will preferably not be something that is hard coded in the client, but rather uses a discovery mechanism.
Note: Only api change is when connecting to deepstream initially
Note: Heartbeat on servers is configurable
The two requirements are:
Client
1: Provide multiple initial deepstream connection endpoints
2: Request from a deepstream a list of all current deepstream nodes available ( Using a http get request )
3: Figure out which one has best score
A score is currently a combination of:
* Latency
* Resource usage on deepstream machine ( CPU, memory, logged in users, etc )
4: Connect to best deepstream
5: On disconnect, repeat step 2 onwards
Server
1: On server being started, request all deepstreams to notify existence via event bus,
2: When receiving existence request, respond with event,
3: Send existence heartbeat every x minutes
4: Delete servers from list if heartbeat is not received in y minutes ( where y > x )
The text was updated successfully, but these errors were encountered: