Unfortunetaly, on L2 all messages are sending to all members of the cluster. unicast: dst_node_id == node_id broadcast: dst_node_id == NOID session example of two nodes (A and B): "A" appears (getting node_id): A -> hello (serial: 0; src: NOID ; dst: NOID; name: A) | cluster_init() A -> register (serial: 1; src: 0 ; dst: NOID; name: A) | Trying to sync with somebody: A -> updtree (serial: 2; src: 0 ; dst: NOID; [A modtree]) "B" appears (getting node_id): B -> hello (serial: 0; src: NOID ; dst: NOID; name: B) | cluster_init() A -> welcome (serial: 3; src: 0 ; dst: NOID; my_name: A; to_name: B) B -> register (serial: 1; src: 1 : dst: NOID; name: B) | A -> ack (serial: 4; src: 0 ; dst: 1; ack_serial: 1) Initial syncing A <-> B: B -> updtree (serial: 2; src: 1 ; dst: NOID; [B modtree]) A -> updtree (serial: 5; src: 0 ; dst: NOID; [A modtree]) A -> lock (serial: 6: src: 0 ; dst: NOID; [paths list]) B -> ack (serial: 2; src: 1 ; dst: 0; ack_serial: 6) B -> lock (serial: 3: src: 1 ; dst: NOID; [paths list]) A -> ack (serial: 7; src: 0 ; dst: 1; ack_serial: 3) A -> unlockall (serial: 8: src: 0 ; dst: NOID) B -> ack (serial: 4; src: 1 ; dst: 0; ack_serial: 8) B -> unlockall (serial: 5: src: 1 ; dst: NOID) A -> ack (serial: 9; src: 0 ; dst: 1; ack_serial: 5) Just syncing A -> B: A -> lock (serial: 10: src: 0 ; dst: NOID; [paths list]) B -> ack (serial: 6; src: 1 ; dst: 0; ack_serial: 10) A -> unlockall (serial: 11: src: 0 ; dst: NOID) B -> ack (serial: 7; src: 1 ; dst: 0; ack_serial: 11) "A" disappers (shutdown) "A" appears (registering with old node_id) A -> hello (serial: 0; src: NOID ; dst: NOID; name: A) B -> welcome (serial: 4; src: 1 ; dst: 0; my_name: B; to_name: A) A -> register (serial: 1; src: 0 ; dst: NOID; name: A) B -> ack (serial: 5; src: 1 ; dst: 0; ack_serial: 1) [...]