Consistência em tempo real
Devido à natureza de alguns sistemas distribuídos, é difícil de impor implicitamente a consistência em tempo real entre as solicitações. Uma solução é permitir o suporte ao protocolo na forma de vários tokens de sincronização. Os tokens de sincronização são opcionais.
Solicitação Inicial
Para garantir a consistência em tempo real entre diferentes instâncias de cliente e solicitações, use os cabeçalhos Sync-Token
de solicitação e resposta opcionais.
Sintaxe:
Sync-Token: <id>=<value>;sn=<sn>
Parâmetro | Descrição |
---|---|
<id> |
ID do Token (opaco) |
<value> |
Valor do token (opaco). Permite cadeia de caracteres codificada em base64. |
<sn> |
Número de sequência de token (versão). Superior significa uma versão mais recente do mesmo token. Permite melhor concurreência e cache de cliente. As versões do token são inclusivas, portanto o cliente pode optar por usar apenas a última versão. Esse parâmetro não é necessário para solicitações. |
Resposta
O serviço fornece um header Sync-Token
com cada resposta.
Sync-Token: jtqGc1I4=MDoyOA==;sn=28
Solicitações subsequentes
Qualquer solicitação subsequente tem garantia de resposta consistente em tempo real em relação ao Sync-Token
fornecido.
Sync-Token: <id>=<value>
Se você omitir o header Sync-Token
da solicitação, será possível que o serviço responda com os dados armazenados em cache durante um curto período (até alguns segundos), antes que ele seja liquidado internamente. Esse comportamento poderá causar leituras inconsistentes se ocorrerem alterações imediatamente antes da leitura.
Vários tokens de sincronização
O servidor pode responder com vários tokens de sincronização para uma única solicitação. Para manter a consistência em tempo real para a próxima solicitação, o cliente deve responder com todos os tokens de sincronização recebidos. Vários valores de cabeçalho devem ser separados por vírgulas.
Sync-Token: <token1-id>=<value>,<token2-id>=<value>