ME Event Personalization Service
Description
The {git_emartech_me_event_pers}[ME Event Personalization Service] is a service that which is deployed in the Google Cloud Platform (GCP) and is responsible for personalizing content of the push/inbox/web push campaigns in the sending chain. The Chunker/Aggregator part of the Message Generator Service is sending the messages via Pub/Sub to the ME Event Personalization Service which is then responsible for batching the messages, getting the push/inbox/web push campaigns from the ME Push Service, and publishing personalization request to the Emarsys Personalization Service.
There are five (5) parts of the Me Event Personalization Service: - Request Publisher Handler - Results Handler - Errors Handler - Errors Republisher Handler - Republisher (Manual Tool)
The Results and Errors Handlers are responsible for handling the responses from the Emarsys Personalization Service. The Errors Republisher Handler processes delayed retry attempts with exponential backoff. Pub/Sub subscriptions are created in Production and Staging Personalization projects.
Request Publisher Handler
The Request Publisher Handler is responsible for batching/grouping the messages and sending the personalization requests to the Emarsys Personalization Service. Supports both batch and transactional processing modes, and handles multiple channels (push, embedded messaging, wallet).
Results Handler
The Results Handler is responsible for handling the successful responses from the Emarsys Personalization Service. It checks for cancelled campaigns/customers, processes any failures by republishing to device mapper, and publishes successful results to downstream services (device mapper for push, embedded messaging topics).
Errors Handler
The Errors Handler is responsible for handling the error responses from the Emarsys Personalization Service. It checks for cancelled campaigns/customers before processing errors. If error is retryable and within retry limits, the message is retried by publishing a new request to the Personalization Service. For specific customers, retries can be scheduled with exponential backoff delay via the Delayer Publisher. If error is not retryable or max retry count is exceeded, the message is reported to not-send topics which then end up in Google BigQuery for the respective push/inbox/web push channel.
Errors Republisher Handler
The Errors Republisher Handler processes delayed retry attempts that were scheduled by the Errors Handler. It receives messages from the retry queue (after exponential backoff delay), validates retry count, and republishes to the Personalization Service. This handler ensures retries are spaced out to avoid overwhelming the personalization service during high error rates.
Republisher (Manual Tool)
The Republisher is a manual operational tool for republishing messages that failed in the Results or Errors Handlers due to transient errors (e.g., temporary network issues, service outages).
Unlike the Errors Republisher Handler which automatically retries failed personalization requests, this tool requires operator intervention and is used after transient issues have been resolved.
It creates new chunker/aggregator messages and publishes them to the Request Publisher Handler. Input topic: event-pers.republisher.