aboutsummaryrefslogtreecommitdiffstats
path: root/docs/peers.md
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-04 19:46:17 +0100
committertv <tv@krebsco.de>2026-11-04 19:46:17 +0100
commitc3faf6ecde8157154a01daa2ddc0ac02e6c761f1 (patch)
treee48db7771a8a6baf8afb4d21063ffe72894f83b0 /docs/peers.md
parent07ef1e4e562d977e72f0a6b702736ae3645b45c7 (diff)
tree messages need no answer
Diffstat (limited to 'docs/peers.md')
-rw-r--r--docs/peers.md13
1 files changed, 10 insertions, 3 deletions
diff --git a/docs/peers.md b/docs/peers.md
index cacceb5..051db4e 100644
--- a/docs/peers.md
+++ b/docs/peers.md
@@ -333,9 +333,16 @@ 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. Its announcement round then 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
+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
+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 (a parent that went away, nodes whose views of the tree
differed) and covers everything that came meanwhile: while changes keep coming, each
neighbour gets an announcement about every 2 s, not with every change.