The Challenge
What Discover Was Facing
Discover was building a recommendation engine that needed to draw on user behaviour signals from three channels — a web application, a mobile app, and an email engagement platform — to produce personalised recommendations. Each channel captured behavioural data in a different format with different event schemas, different user identifiers, and different real-time latency characteristics. Without a unified view of cross-channel behaviour, recommendations were based on whichever channel had most data for a given user, producing poor results for users who spread their activity across channels.
The Solution
What We Built
We built a behavioural data integration layer with per-channel ingestion adapters that normalised event schemas from all three sources into a canonical user action model. An identity resolution service linked web sessions, mobile device IDs, and email subscriber IDs to a master user profile, constructing a merged behavioural timeline that reflected activity across all channels. The merged timeline fed the recommendation engine in near real time, with channel-specific weighting rules reflecting the relative intent-signal value of different interaction types. A feature store held pre-computed user embeddings that the recommendation engine could query at low latency during active sessions.

Results
