Aggregator
The Aggregator is the target of transactional send requests coming from the Web API part of the message generator.
Messages are delivered by Pub/Sub and consumed via streaming pull. The Aggregator:
-
Parses each message
-
Publishes bad messages to the error topic
sending-mg-errors -
Enriches valid messages with campaign information and generates the route
-
-
Determines the output path based on personalization needs and channel:
-
Push, personalized → publishes to
event-pers.push.request-publisher.tx.<dg> -
Push, non-personalized → publishes directly to
sending-tx-devicemapper-<dg> -
Embedded message, personalized → publishes to
event-pers.push.request-publisher.tx.<dg> -
Embedded message, non-personalized → publishes to
sending-tx-em-<dg>
-
-
Acknowledges the original message regardless of whether an error was detected
Dependencies
The Aggregator is located between the Web API and the Personalizer / Device Mapper:
-
Pub/Sub:
-
Receives messages from subscription
sending-tx-<dg>-sub -
Publishes to personalization topic
event-pers.push.request-publisher.tx.<dg>or device mapper topicsending-tx-devicemapper-<dg> -
In case of transient errors, publishes to the Pub/Sub Delay Service
-
In case of fatal errors, publishes to
sending-mg-errors
-
-
me-push: Fetches campaign information
-
Kibana: Logging
Error Handling
-
Transient errors: Uses the Pub/Sub delay service to redeliver messages with exponential backoff. If retries are exhausted, the message is logged and dropped.
-
Fatal errors: Published to
sending-mg-errorsfor investigation.
See Error Handling for the full retry policy.