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.
- Controlling what is accepted covers setting it up and, more importantly, proving which of the three is happening.
Data receipt in Concepts explains the mechanism: the receipt check modes, feed status, and how receipt rules are evaluated.
The three outcomes
| Outcome | The sender sees | The data |
|---|---|---|
| Receive | Success | Stored |
| Reject | An error, with a status code saying why | Not stored |
| Drop | Success | Discarded |
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.