Como resultado, se houver algum não determinismo no código do servidor de banco de dados (por exemplo, se um comando for »se (aleatório ()> 0,5) x ++ â), o estado de réplica divergirá.Idealmente, o estado local é armazenado em uma loja persistente que tem atomicidade de falha (por exemplo, rocksdb), para que o estado nunca possa refletir um comando meio aplicado.Por enquanto, vamos ignorar como a camada SMR é implementada (ou seja, através de algum protocolo de consenso personalizado ou como uma camada acima de alguma abstração subjacente, como um log compartilhado).Nesse sistema, normalmente existe uma camada de servidores com estado (ou seja, servidores de aplicativos ou banco de dados) que armazenam estado replicado.Com efeito, o banco de dados replicado não se comporta mais como se estivesse executando comandos em uma ordem total;Como resultado, não é mais estritamente serializável.
Fonte: https://maheshba.bitbucket.io/blog/2023/05/06/Leadership.html