Compartilhar via


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>