Skip to content

Receiving and Routing

Deciding what Stroom accepts, what it quietly discards, and what it refuses outright.

Everything arriving at Stroom is checked before it is kept. The check decides one of three things: accept it, refuse it, or take it and throw it away.

That third option is deliberate and useful, and it is also the reason this part of Stroom deserves care. A sender whose data is being dropped is told the send succeeded, so nothing on either side reports a problem while the data goes nowhere.

Data receipt in Concepts explains the mechanism: the receipt check modes, feed status, and how receipt rules are evaluated.

The three outcomes

OutcomeThe sender seesThe data
ReceiveSuccessStored
RejectAn error, with a status code saying whyNot stored
DropSuccessDiscarded

Reject is for senders that should correct something: a feed that does not exist, or data that fails a rule. The error gives them something to act on.

Drop is for when the sender should not know. That is occasionally exactly what is wanted, and the rest of the time it is a configuration mistake that is almost impossible to notice from either end.

Data arrives at /datafeed Feed status or receipt rules Receive sender sees success · data stored Reject sender sees an error · nothing stored Drop sender sees success · data discarded
Only one of the three tells the sender anything is wrong. Drop and Receive look identical from both ends, which is why the stream existing is the only proof of receipt.

All documentation