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
Capability | Client subscriptions (e.g., MQTT 5, STOMP, AMQP) | Inter-server inbound | Inter-server outbound |
---|---|---|---|
Filtering | Yes — protocol-native subscription filters where supported | Yes | Yes |
Statistics | Not yet — planned; needs event-namespace design | Yes | Yes |
Transformations | Yes — inbound/outbound for clients | Yes | Yes |
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.