Say how the spawned tools are actually invoked
This commit is contained in:
@@ -5,12 +5,25 @@
|
||||
// vv_nc_deliver(), with the record on stdin.
|
||||
//
|
||||
// OPERATIONAL MODEL
|
||||
// php node_chat_receive.php --channel=<id> record on stdin, one JSON object
|
||||
// php node_chat_receive.php --flush retry this host's own undelivered spool
|
||||
//
|
||||
// Exit 0 means stored. The sender treats anything else as undelivered and spools for retry, so
|
||||
// a non-zero exit here is a message that will arrive later rather than one that is lost.
|
||||
//
|
||||
// Two jobs in one file because they are two halves of the same contract: --channel takes what
|
||||
// a partner is delivering now, --flush pushes what this host failed to deliver earlier. A node
|
||||
// is both a receiver and a sender, and splitting them would mean two files that must agree on
|
||||
// the same spool layout.
|
||||
//
|
||||
// DESIGN PRINCIPLES
|
||||
// The exit code is the receipt, and it is the only one.
|
||||
// There is no acknowledgement message and no reply body. The sender is an SSH command that
|
||||
// already has an exit status, so inventing a second channel to say the same thing would
|
||||
// give the two ways to disagree.
|
||||
//
|
||||
// Refusing is cheaper than being wrong.
|
||||
// An unparseable record, an unknown channel or a failed write all exit non-zero and leave
|
||||
// the message in the sender's spool. A retry costs one SSH round trip; a message accepted
|
||||
// and dropped is gone with nothing recording that it existed.
|
||||
//
|
||||
// OPERATIONAL SAFEGUARDS
|
||||
// Reached only over SSH with a key this mesh installed, so the caller already has root. This
|
||||
// file therefore validates shape, not authority — there is no privilege here to protect that
|
||||
@@ -22,6 +35,12 @@
|
||||
// Storage is append-and-trim through vv_nc_append(), which is idempotent on message id — a
|
||||
// retry of something that already landed is a no-op rather than a duplicate.
|
||||
//
|
||||
// RUNTIME MODES
|
||||
// Not invoked by hand — the sending node's vv_nc_deliver() runs it over SSH.
|
||||
//
|
||||
// php node_chat_receive.php --channel=<id> store one JSON record, read from stdin
|
||||
// php node_chat_receive.php --flush retry this host's own undelivered spool
|
||||
//
|
||||
// DEPENDS ON
|
||||
// include/node_chat.php vv_nc_append(), vv_nc_channel(), vv_nc_flush_spool()
|
||||
// ═══════════════════════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user