Adobe Experience Platform is a highly distributed system designed to maximize reliability while scaling to ever-increasing volumes of data.
For real-time data collection, Experience Events are collected via the Edge Network, from client-side sources, such as Web SDK or Mobile SDK, and delivered to Experience Platform processing and storage layers. These layers compose solutions such as Experience Platform, Real-Time CDP, Customer Journey Analytics, and Adobe Journey Optimizer.
To minimize Experience Event loss, client-side SDKs and the internal Experience Platform delivery service expect a confirmation that an event was successfully collected.
If that confirmation is not received, the client-side SDKs or the internal Platform delivery service trigger a retry, and the Experience Event is sent again.
This is a best practice for handling transient failures. The side-effect is the possibility of introducing duplicate events.
To better understand best practices for handling transient failures, see this article on transient fault handling.
Event duplication can occur in various scenarios, such as, but not limited to:
The Adobe Experience Platform data collection layer is designed to support “at-least-once” processing. Consequently, event duplication may occur in limited, rare situations.
To learn more about “at-least-once” processing, see this article on message delivery guarantees.
For business scenarios sensitive to duplicate events, Experience Platform uses multiple event deduplication methods in its downstream storage systems, such as the ones described below.
_id
already exists in the Profile store. See the documentation on XDM ExperienceEvent class for more details.If you are running into event duplication issues outside of the use cases presented above, reach out to your Adobe representative and provide detailed information about your use case.