aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/peers.md16
1 files changed, 9 insertions, 7 deletions
diff --git a/docs/peers.md b/docs/peers.md
index d22b7c5..d5403c1 100644
--- a/docs/peers.md
+++ b/docs/peers.md
@@ -333,13 +333,15 @@ children in each of their writers' trees, however they came (along a tree, with
answer to one of its own messages, pulled). A sync message along a tree also says
whose; one that had those changes already passes them on too (they may have come
another way first, when it wasn't yet anyone's turn to pass them on), so a child that
-lacks them still gets them. A message along a tree to a child that had nothing the
-parent lacks needs no answer: the parent takes it as delivered (the child's heads are
-its own now), and the child, level with it, says nothing; a child with changes the
-parent lacks answers with them, as before. That leaves out about half the sync
-messages, Automerge's answers that only say "I have your heads". Should the message
-be lost, the child's other neighbours tell it in their slow rounds (below), and it
-pulls; a child that reaches no other member is told in its parent's. The announcement
+lacks them still gets them. A sync message to a peer that had nothing the sender lacks,
+with no answer awaited, needs none: the sender takes it as delivered (the peer's heads
+are its own now) and says so in the envelope, and the peer, level with it, says
+nothing; one with changes the sender lacks answers with them, as before. That leaves
+out about half the sync messages, Automerge's answers that only say "I have your
+heads": along trees, to pulls, to what is sent again. Should the message be lost, the
+peer still lacks it: one that pulled asks again after its reply timeout; a child in a
+tree is told by its other neighbours in their slow rounds (below), and pulls (one that
+reaches no other member, by its parent's), or can't apply the next message and asks. The announcement
round of a node that passed changes on goes only to the neighbours the tree leaves out
(no member they reach comes before them, or the member list's graph doesn't have
them); all others are told in a slow round 2 s later, which catches what a tree missed