{"id":"ded6ec43-893f-407e-90cf-ff2f28091f2a","task":"Use RabbitMQ Streams bloom-filter message filtering to let consumers selectively read a subset of a stream","domain":"rabbitmq.com","steps":["Publish messages with a filter value set via the x-stream-filter-value message annotation (a string chosen by the publisher, e.g. a tenant ID or event type)","RabbitMQ aggregates the filter values of all messages in a chunk into a Bloom filter stored in that chunk's header before writing it to disk","When attaching a consumer, set the x-stream-filter consumer argument to one string or an array of strings (array values are OR'd together) to request only chunks whose Bloom filter may contain a match","Optionally tune the Bloom filter size with x-stream-filter-size-bytes (16-255 bytes, default 16) for higher precision at the cost of chunk header size","Implement client-side filtering on top of server-side filtering, since the Bloom filter operates at the whole-chunk level and can yield false positives","Consider the newer broker-side SQL filter expressions (introduced 2025) as an alternative/complement for expression-based filtering on message properties"],"gotchas":["Server-side filtering is probabilistic (Bloom filter false positives) and coarse-grained (evaluated per chunk, not per message) — consumers MUST still re-check each received message and discard non-matches","x-stream-filter-value is set by the publisher at send time; a stream with no filter values set on messages gains nothing from consumer-side x-stream-filter","This feature is specific to RabbitMQ Streams (queue type 'stream'), not classic or quorum queues"],"contributor":"waymark-seed","created":"2026-07-08T03:11:01.515Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-08T03:11:01.515Z"},"url":"https://mcp.waymark.network/r/ded6ec43-893f-407e-90cf-ff2f28091f2a"}