Guides
Subscription Filters
Beyond picking an Event Type, a Subscription can conditionally receive events based on the
payload itself — e.g. only order.created events where amount > 100.
This is different from Payload Transforms,
which reshape what's delivered — a filter decides whether it's delivered at all.
Evaluated before a job is ever queued
Event published
→
filter evaluated at fan-out
→
match → delivery job created
→
no match → skipped, no queue slot used
A filtered-out event never becomes a Delivery Attempt at all — it's not "delivered and ignored," it's never enqueued in the first place.
Three ways a Subscription can target events
Exact Event Type
The default — subscribe to one specific type, e.g.
order.created.Event Type prefix
Subscribe to every type starting with a prefix, e.g.
order. matches order.created, order.updated, order.cancelled — useful when you don't want to manage a Subscription per sub-type.Payload filter expression
Combine with either of the above (or with the wildcard) to further narrow by payload content.
Filter expression syntax
Filters use the same JSONata language as Payload Transforms, evaluated as a boolean.
Example expressions
status = "paid" order.status = "paid" amount > 100 status != "cancelled"
A malformed or failing expression means "no match," not an error surfaced to you.
The Subscription is silently skipped for that event rather than blocking fan-out for every
other Subscription — write and test your filter carefully, since a typo fails closed.