What's the difference between strong consistency and sequential consistency? How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs


  ... the result of any execution is the same as if the operations of all
  the processors were executed in some sequential order, and the
  operations of each individual processor appear in this sequence in the
  order specified by its program. A multiprocessor satisfying this
  condition will be called sequentially consistent.


Spanner docs:


  Strong Consistency    All accesses are seen by all parallel processes (or
  nodes, processors, etc.) in the same order (sequentially)5 In some
  definitions, a replication protocol exhibits "strong consistency" if
  the replicated objects are linearizable.


The 5 in that doc is a link to the wikipedia page, which apparently hasn't ever cited any sources. I can't seem to find any original source for it. The "some definitions" mentioned seem to be nowhere to find online.

What's the difference between strong and sequential consistency?
In the case of the Spanner doc: it appears to be more strict than linearizability due to transactions. The difference between linearizability and sequential consistency is that latter doesn't need to preserve the real time ordering of requests.
https://jepsen.io/consistency/models/linearizable
The combination of linearizability and transactions is called strict serializability:
https://jepsen.io/consistency/models/strict-serializable
I'm not sure if spanner is supporting strict serializability.