Archived
A host's account reaches no part of the JetStream API — correctly, because the controller is the only writer of consumer definitions — so the object a node reads its declarations through has to be waiting before the host binds to it, and nothing created one. Named after the node, because the node's own ack grant is `$JS.ACK.NODES.<node>.>` and a consumer named anything else is one the host cannot acknowledge a delivery from. No max-deliver, and a five-minute ack wait: a declaration is settled only after the node has applied it and reported, which is minutes on a machine pulling images, and the stream holds exactly one message per node — so there is nothing to dead-letter, only one message to redeliver for as long as that node is away. Asserted on start as well as created at enrolment, for the reason the streams are: a mesh raised from a restored backup has node records and no consumers, and a node whose consumer is missing hears nothing while everything else about it looks correct. The test sets the consumer against the grant the node actually gets, because each of the three ways of getting it wrong is silent: a wrong name cannot ack, a wrong filter reads another node's declarations, and a pull consumer is one a host has no authority to bind.