Skip to main content

Overview

MAPS provides a data processing layer that allows you to filter, transform, and analyze event streams in real time.

This layer sits between event ingestion and delivery and is responsible for:

  • Filtering events with selectors (including ML-enabled filters).
  • Transforming payloads using schemas (field mapping, enrichment, format conversion).
  • Applying statistics to streams to produce summary events.
  • Enforcing schemas for validation and routing.

Without a schema, event payloads are treated as opaque — no type information is available beyond basic inference.
With a schema, MAPS can perform type-aware filtering, transformations, and statistical aggregation.

Components

  • Schemas: Define the structure and types of event payloads. Critical for validation, transformation, and analytics.
  • Filtering: Use selectors or ML functions to route or drop events.
  • Transformations: Change event payloads, map fields, convert formats (JSON, Avro, Protobuf, CSV), or enrich with new data.
  • Statistics: Aggregate streams into JSON summary events using analysers (Base, Advanced, Moment, etc.).

Processing Flow (Conceptual)

Key Notes

  • Processing is stream-oriented and happens inline with event flow.
  • Every step (filter, transform, stats) produces valid events that can be bridged, routed, or archived like any other message.
  • Schemas are the foundation: without them, MAPS treats payloads as opaque, which limits processing capabilities.

Where Each Feature Applies

CapabilityClient subscriptions (e.g., MQTT 5, STOMP, AMQP)Inter-server inboundInter-server outbound
FilteringYes — protocol-native subscription filters where supportedYesYes
StatisticsNot yet — planned; needs event-namespace designYesYes
TransformationsYes — inbound/outbound for clientsYesYes

Notes

  • Filtering (clients): supported on protocols with subscription filtering (MQTT 5, STOMP, AMQP, others that expose selectors).
  • Filtering (inter-server): available on both ingress and egress links.
  • Statistics: currently only on inter-server links (to/from other servers). Client-side stats are planned; scope is under review to fit the event namespace.
  • Transformations: configurable on both client and inter-realm connections (inbound/outbound). Useful to shape payloads for downstream filtering or statistics, or to adapt to other messaging layouts.