Coherencia en tiempo real
Debido a la naturaleza de algunos sistemas distribuidos, es difícil aplicar de manera implícita la coherencia en tiempo real entre solicitudes. Una solución consiste en permitir la compatibilidad con protocolos mediante varios tokens de sincronización. Los tokens de sincronización son opcionales.
Solicitud inicial
Para garantizar la coherencia en tiempo real entre las distintas instancias y solicitudes de cliente, use los encabezados de solicitud y respuesta Sync-Token
opcionales.
Sintaxis:
Sync-Token: <id>=<value>;sn=<sn>
Parámetro | Descripción |
---|---|
<id> |
Id. de token (opaco). |
<value> |
Valor de token (opaco). Admite cadenas codificadas en base64. |
<sn> |
Número de secuencia de token (versión). Un número mayor significa una versión más reciente del mismo token. Permite mejorar el almacenamiento en caché del cliente y la simultaneidad. El cliente puede optar por usar solo la última versión del token, ya que las versiones del token son inclusivas. Este parámetro no es obligatorio para las solicitudes. |
Response
El servicio proporciona un encabezado Sync-Token
con cada respuesta.
Sync-Token: jtqGc1I4=MDoyOA==;sn=28
Solicitudes siguientes
Todas las solicitudes posteriores tienen garantizada una respuesta coherente en tiempo real con respecto al Sync-Token
proporcionado.
Sync-Token: <id>=<value>
Si omite el encabezado Sync-Token
en la solicitud, es posible que el servicio responda con los datos en caché durante un breve período de tiempo (hasta unos segundos) antes de que se configuren internamente. Este comportamiento puede producir lecturas incoherentes si ha habido cambios inmediatamente antes de la lectura.
Varios tokens de sincronización
El servidor podría responder con varios tokens de sincronización para una única solicitud. Para mantener la coherencia en tiempo real de la solicitud siguiente, el cliente debe responder con todos los tokens de sincronización recibidos. Cuando hay varios valores de encabezado, se deben separar con comas.
Sync-Token: <token1-id>=<value>,<token2-id>=<value>