Skip to main content Skip to footer

Best Practice

The Module Message Filter

How does it work?

Module Message filter

Each module has a configurable message filter. By default modules will process every message they receive. By adding a message filter the module will only process messages matching some criteria. Messages not matching the filter criteria can either be dropped, or passed-on untouched. For example, match conditions:

  • On numeric property values (=, <, >)
  • String property values (contains, does not contain)
  • >Equal/not equal
  • isNull, isNotNull
  • Regex
  • Boolean values (isTrue, isFalse)

Multiple conditions can be used.

Additional Filtering Modules

Crosser Split Module


Split a stream of messages into multiple paths by defining conditions on message data. Multiple conditions can be specified for each path. Each path will get a separate output on the module.

Crosser Report by Exception Module

Report By Exception

Only let through messages when the value of a specified property changes. Can be used to remove duplicates.

Crosser Range Filter Module

Range Filter

Only let through messages where a selected value is either within or outside of a specified range. The same effect can be achieved by using message filters.

Crosser Array Filter Module

Array Filter

The module filters an array of objects by the specified Filter(s). Filter evaluation can be set to Or(one filter match is sufficient) or And (all of the filters must match). When the Or filter is used the filters are evaluated in the order they are specified holding the key value and another property with the value for that key.

Crosser Throttle Module


Limit the rate of messages, e.g. only let through a maximum of one message per second. Can also be used to spread out messages in time by enforcing a minimum delay between messages, which can be used to smooth out bursty traffic.

Crosser Deadband Module


The module filters away messages within a deadband, i.e. where the difference is small enough to be ignored. For example if the range for a deadband is X the module will only let messages pass through if the value changes more than X in any direction. The module allows the deadband to be configured as an absolute value or a relative percentage.


About the author

Goran Appelquist (Ph.D) | CTO

Göran has 20 years experience in leading technology teams. He’s the lead architect of our end-to-end solution and is extremely focused in securing the lowest possible Total Cost of Ownership for our customers.

"Hidden Lifecycle (employee) cost can account for 5-10 times the purchase price of software. Our goal is to offer a solution that automates and removes most of the tasks that is costly over the lifecycle.

My career started in the academic world where I got a PhD in physics by researching large scale data acquisition systems for physics experiments, such as the LHC at CERN. After leaving academia I have been working in several tech startups in different management positions over the last 20 years.

In most of these positions I have stood with one foot in the R&D team and another in the product/business teams. My passion is learning new technologies, use it to develop innovative products and explain the solutions to end users, technical or non-technical."