It's called Matrix :)

This commit is contained in:
Matthew Hodgson 2014-08-14 18:58:01 +01:00
parent 3ddfc949dc
commit 7a025d6368

View file

@ -1,8 +1,8 @@
============================ ===========================
Synapse Server-to-Server API Matrix Server-to-Server API
============================ ===========================
A description of the protocol used to communicate between Synapse home servers; A description of the protocol used to communicate between Matrix home servers;
also known as Federation. also known as Federation.
@ -10,7 +10,7 @@ Overview
======== ========
The server-server API is a mechanism by which two home servers can exchange The server-server API is a mechanism by which two home servers can exchange
Synapse event messages, both as a real-time push of current events, and as a Matrix event messages, both as a real-time push of current events, and as a
historic fetching mechanism to synchronise past history for clients to view. It historic fetching mechanism to synchronise past history for clients to view. It
uses HTTP connections between each pair of servers involved as the underlying uses HTTP connections between each pair of servers involved as the underlying
transport. Messages are exchanged between servers in real-time by active pushing transport. Messages are exchanged between servers in real-time by active pushing
@ -19,7 +19,7 @@ historic data for the purpose of back-filling scrollback buffers and the like
can also be performed. can also be performed.
{ Synapse entities } { Synapse entities } { Matrix clients } { Matrix clients }
^ | ^ | ^ | ^ |
| events | | events | | events | | events |
| V | V | V | V
@ -64,10 +64,10 @@ top-level element, passed over an HTTP PUT request. A Transaction is meaningful
only to the pair of home servers that exchanged it; they are not globally- only to the pair of home servers that exchanged it; they are not globally-
meaningful. meaningful.
Each transaction has an opaque ID and timestamp (UNIX epoch time in miliseconds) Each transaction has an opaque ID and timestamp (UNIX epoch time in
generated by its origin server, an origin and destination server name, a list of milliseconds) generated by its origin server, an origin and destination server
"previous IDs", and a list of PDUs - the actual message payload that the name, a list of "previous IDs", and a list of PDUs - the actual message payload
Transaction carries. that the Transaction carries.
{"transaction_id":"916d630ea616342b42e98a3be0b74113", {"transaction_id":"916d630ea616342b42e98a3be0b74113",
"ts":1404835423000, "ts":1404835423000,
@ -114,7 +114,7 @@ field of a PDU refers to PDUs that any origin server has sent, rather than
previous IDs that this origin has sent. This list may refer to other PDUs sent previous IDs that this origin has sent. This list may refer to other PDUs sent
by the same origin as the current one, or other origins. by the same origin as the current one, or other origins.
Because of the distributed nature of participants in a Synapse conversation, it Because of the distributed nature of participants in a Matrix conversation, it
is impossible to establish a globally-consistent total ordering on the events. is impossible to establish a globally-consistent total ordering on the events.
However, by annotating each outbound PDU at its origin with IDs of other PDUs it However, by annotating each outbound PDU at its origin with IDs of other PDUs it
has received, a partial ordering can be constructed allowing causallity has received, a partial ordering can be constructed allowing causallity