CloudServices/Roadmaps/EditionServer: Difference between revisions

Jump to navigation Jump to search
Line 74: Line 74:
# If a PLACEHOLDER SERVER is unable to immediately deliver a VERSION EVENT, the VERSION EVENT is logged to short term storage.
# If a PLACEHOLDER SERVER is unable to immediately deliver a VERSION EVENT, the VERSION EVENT is logged to short term storage.
# PLACEHOLDER CLIENT connects to the PLACEHOLDER SERVER and shall identify a list of one or more UAIDs it is responsible for.
# PLACEHOLDER CLIENT connects to the PLACEHOLDER SERVER and shall identify a list of one or more UAIDs it is responsible for.
# If there are VERSION EVENTS pending for requested UAIDs, PLACEHOLDER SERVER sends an UPDATE packet (For this template, italicized names would be replaced by actual values):
# If there are VERSION EVENTS pending for requested UAIDs, PLACEHOLDER SERVER sends an UPDATE packet
{ <i>UAID</i>: {
    {<i>APPID</i>: <i>VERSION</i>},
    ... },
  ... }
# If no VERSION EVENTS are pending for the requested UAIDs, PLACEHOLDER SERVER may return a status indicating no data available (for REST implementations) or simply not return content (for WebSocket)
# If no VERSION EVENTS are pending for the requested UAIDs, PLACEHOLDER SERVER may return a status indicating no data available (for REST implementations) or simply not return content (for WebSocket)
# During the transmission of the UPDATE, a PLACEHOLDER SERVER may wish to return a 503 (Service Unavailable) error to APP SERVERS for any VERSION EVENT associated with an in progress UAID, so as to prevent potential race conditions.
# During the transmission of the UPDATE, a PLACEHOLDER SERVER may wish to return a 503 (Service Unavailable) error to APP SERVERS for any VERSION EVENT associated with an in progress UAID, so as to prevent potential race conditions.
Line 87: Line 83:
# User Agent record (including associated channels and version information) that have not been accessed during an "active use" period, may be dropped by the PLACEHOLDER SERVER
# User Agent record (including associated channels and version information) that have not been accessed during an "active use" period, may be dropped by the PLACEHOLDER SERVER
## An unknown (or garbage collected) user agent record would need to re-register with PLACEHOLDER SERVER as if this is an initial connection.
## An unknown (or garbage collected) user agent record would need to re-register with PLACEHOLDER SERVER as if this is an initial connection.
<strike>
<strike>
* Version data is significant and must reflect the latest value submitted. Must be numeric.
# Version data is significant and must reflect the latest value submitted. Must be numeric.
** Version must be higher than previously submitted value (TODO: Need to provide use case for how versions would be required)
## Version must be higher than previously submitted value (TODO: Need to provide use case for how versions would be required)
</strike>
</strike>
* Clients are the source of truth for the associated channels.  
# Clients are the source of truth for the associated channels.  
** Channel discrepancies between the client and the server result in the server sending a request to client to reset.  
## Channel discrepancies between the client and the server result in the server sending a request to client to reset.  
*** TODO: Details on what a reset entails needed
### TODO: Details on what a reset entails needed
* UAIDs may be a globally unique 128 bit number
# UAIDs may be a globally unique 128 bit number
* APPIDs are unique per UAID namespace
# APPIDs are unique per UAID namespace
* ENDPOINTs are Globally Unique
# ENDPOINTs are Globally Unique
* Data must be stored and managed in a highly responsive manner (low read/write latency)  
# Data must be stored and managed in a highly responsive manner (low read/write latency)  
* EDITION SERVER should support 1MM+ number of simultaneously connected clients
# EDITION SERVER should support 1MM+ number of simultaneously connected clients
* Connections should maintain as long as possible. A server should not break a connection because it's gone idle.
# Connections should maintain as long as possible. A server should not break a connection because it's gone idle.
* A Server should attempt to retry a failed transmission to the client every 60 seconds.
# A PLACEHOLDER SERVER should attempt to retry a failed transmission to the client every 60 seconds.


NOTE: a PLACEHOLDER RELAY may be created by combining the polling aspects of the PLACEHOLDER CLIENT with the data management and KICK driver of the PLACEHOLDER SERVER. This would allow a VERSION EVENT system to enter protected networks or use restricted means to communicate to USER AGENTs. It is important to note that once a PLACEHOLDER SERVER has received an ACK for a given UAID, the PLACEHOLDER SERVER is under no obligation to retain that data, and proper relay of the VERSION EVENT is the PLACEHOLDER RELAY's problem.
NOTE: a PLACEHOLDER RELAY may be created by combining the polling aspects of the PLACEHOLDER CLIENT with the data management and KICK driver of the PLACEHOLDER SERVER. This would allow a VERSION EVENT system to enter protected networks or use restricted means to communicate to USER AGENTs. It is important to note that once a PLACEHOLDER SERVER has received an ACK for a given UAID, the PLACEHOLDER SERVER is under no obligation to retain that data, and proper relay of the VERSION EVENT is the PLACEHOLDER RELAY's problem.
Confirmed users
1,018

edits

Navigation menu