Skip to content

Adobe Experience Platform Identity Resolution vs Data 360

Executive summary

Identity resolution (IDR) is the foundation of any Customer Data Platform, and is best understood as a staged capability rather than a single feature. Salesforce Data 360 and Adobe Experience Platform (AEP) address non-deterministic, or “fuzzy”, data matching through radically different architectural paradigms.

  • Salesforce Data 360 uses an object-relational, rule-engine approach. It resolves identities via downstream batch or asynchronous rulesets using fuzzy string algorithms (Levenshtein distance, Jaro-Winkler) alongside exact-match rules.
  • Adobe Experience Platform (AEP) uses a streaming-first, graph-database approach. Its native Identity Service evaluates deterministic edge-links in real time. AEP intentionally omits a native, in-flight probabilistic string-matching engine to prevent edge-latency bottlenecks, delegating non-deterministic matching to upstream pipelines or external identity graph providers.

The core scenario: resolving the ambiguous customer

Consider a consumer interacting across three channels over 24 hours.

WhenChannelIdentifiers captured
Day 1, 09:00Web visitAnonymous cookie (ECID: 101) browses products.
Day 1, 14:00Call-centre entryLegacy CRM record created for “Jon Smith”, email jon.smith@email.com, phone 555-0199.
Day 2, 10:00Web formFills out lead form as “Johnathan Smith”, email jon.smith@email.com, cookie ECID: 101.

The core challenge: how does a platform merge the offline CRM entry (“Jon Smith”) with the web-form entry (“Johnathan Smith”) when variations in names, typos, or missing primary keys occur?

Platform 1: Salesforce Data 360 — native probabilistic and fuzzy matching

Salesforce resolves this by treating identity as an asynchronous table transformation problem.

Salesforce Data 360 flow: web form and offline CRM events land in Data Landing and Data Model Objects, then an identity ruleset runs exact email and fuzzy name (Jaro-Winkler, Levenshtein) matches in scheduled batch to materialise one Unified Individual.
Salesforce Data 360 resolves identity as an asynchronous table transform: fuzzy and exact rules run downstream over the DMO tables, then materialise one Unified Individual.

Mechanics

  1. Ingestion and staging. Data lands in Data Landing Objects (DLOs) and maps to Data Model Objects (DMOs) — for example an Individual DMO and a Contact Point Email DMO.
  2. Ruleset configuration. Architects configure an identity resolution ruleset with multiple match rules: a deterministic rule (exact match on normalised email address) and a probabilistic rule (fuzzy first name at medium precision, with exact last name and exact phone number). This is where Data 360’s probabilistic matching does its work, using fuzzy match methods such as Levenshtein distance and Jaro-Winkler configured through the platform’s match-rule criteria.
  3. Execution. The identity engine runs across the DMO tables. It evaluates the string distance between “Jon” and “Johnathan”, identifies the match on shared email and phone constraints, and creates a consolidated row in the Unified Individual DMO.

Trade-offs

Advantages: native, out-of-the-box support for typos, name variations, and dirty legacy data. Constraints: processing happens asynchronously downstream, introducing a delay between raw event ingestion and unified-profile activation.

Platform 2: Adobe Experience Platform — deterministic in-flight graph

Adobe approaches this through an in-flight graph-database model built on a native identity graph.

Adobe Experience Platform flow: web and offline events hit the Edge Gateway, which extracts keys from the identityMap; the Identity Service draws deterministic edges in a graph database; the Unified Profile Store assembles profile fragments virtually on lookup. A callout notes AEP will not link j.smith@ and jon.smith@ without a shared key.
Adobe Experience Platform links deterministic edges in-flight and assembles profiles virtually on lookup — with no native fuzzy string matching on the stream.

Mechanics

  1. In-flight key extraction. As HTTP payloads hit the Adobe Edge Network, the ingestion engine scans the identityMap array in sub-seconds.
  2. Deterministic edge linking. If a single payload contains two identifiers (for example ECID: 101 and Email: jon.smith@email.com), AEP’s Identity Service instantly draws a directed edge between those two nodes in the identity graph, following its identity graph linking rules. This is what makes AEP a real-time identity resolution architecture.
  3. Virtual profile assembly. AEP does not rewrite records. When a profile lookup occurs, it queries the identity graph for connected nodes, retrieves the corresponding isolated profile fragments (web fragment, CRM fragment), and dynamically merges them using configurable merge policies.

The gap

If the offline CRM record contains Email: jon.smith@email.com and a separate web record contains Email: j.smith@email.com, with no shared cookie or primary key, AEP’s Identity Service will not link them. It lacks native fuzzy text evaluation on incoming streams.

Architecting workarounds in Adobe for probabilistic matching

Because AEP prioritises low-latency ingestion, non-deterministic matching must be handled through deliberate architectural patterns upstream or via partner ecosystems. The same trade-off appears wherever coverage on high-value records depends on multi-signal, probabilistic matching rather than exact keys alone.

Two upstream patterns for probabilistic matching with AEP: Pattern A resolves dirty data in Databricks, Snowflake, or Reltio into a canonical Enterprise_ID; Pattern B maps data against LiveRamp or Merkle into imported graph namespaces. Both feed Adobe Experience Platform pre-resolved deterministic ID keys via XDM.
Adding probabilistic matching to AEP: the fuzzy work happens upstream in a lakehouse or MDM, or in a third-party identity graph, and AEP ingests the pre-resolved deterministic keys via XDM.

Pattern A: upstream processing (Databricks, Snowflake, or enterprise MDM)

How it works: data engineers run identity resolution logic in the cloud data lakehouse or master data management (MDM) platform before pushing data to AEP.

Execution: algorithms — for example entity-resolution scripts in Databricks or Reltio — evaluate “Jon Smith” and “Johnathan Smith”, resolve them, and assign a persistent enterprise identifier such as Enterprise_ID: Master-8821.

AEP ingestion: data is ingested into AEP using an XDM schema where Enterprise_ID is defined as the primary identity. AEP’s graph then links Enterprise_ID: Master-8821 to incoming web cookies or device tokens.

Pattern B: third-party identity graph ingestion (LiveRamp, Merkle)

How it works: enterprise organisations leverage external identity resolution providers, such as LiveRamp RampID or Merkle Merkury, that maintain off-the-shelf deterministic and probabilistic identity networks.

Execution: raw customer attributes are mapped against the vendor’s identity graph offline or via batch pipelines.

AEP ingestion: mapped pairs — for example RampID: 9921 linked to ECID: 101 — are ingested directly into AEP’s Identity Service as a custom identity namespace. AEP ingests the pre-resolved edges natively into its graph structure without performing string calculations itself.

Comparative architectural summary

DimensionSalesforce Data 360Adobe Experience Platform (AEP)
Primary architectureObject-relational / lakehouse transformationDistributed streaming / in-memory graph database
In-flight deterministic matchAsynchronous / batch ruleset runsSub-second edge processing via identityMap payloads
Native probabilistic matchYes. Configurable fuzzy rulesets (Jaro-Winkler, Levenshtein)No. Intentionally omitted to protect edge-ingestion throughput
Storage unification modelPhysical row creation (Unified Individual DMO)Virtual dynamic synthesis of isolated profile fragments
Recommended strategy for dirty dataConfigure match / reconciliation rules within the Data 360 UIResolve via upstream lakehouse (Databricks) or ingest third-party graph IDs

Adobe Experience Platform Identity Resolution — FAQ

Does Adobe Experience Platform support probabilistic identity matching?

No. AEP's native Identity Service performs deterministic edge-linking only, matching records that share an explicit identifier such as an ECID or an email address.

It intentionally omits an in-flight fuzzy string-matching engine to protect edge-ingestion latency, so probabilistic matching must be handled upstream or supplied by a third-party identity graph.

What is the difference between deterministic and probabilistic identity resolution?

Deterministic resolution links records that share an exact, unique identifier such as a matching email, phone number, or customer ID. Probabilistic resolution infers that two records belong to the same person from partial or fuzzy evidence, such as similar names scored with algorithms like Jaro-Winkler or Levenshtein distance.

Deterministic matching is precise but misses records with typos or missing keys; probabilistic matching recovers those at the cost of some false positives.

What is the identityMap in Adobe Experience Platform?

The identityMap is the field in an XDM record that carries a customer's identifiers, each tagged with its namespace, for example ECID or Email. As data reaches the Adobe Edge, the Identity Service reads the identityMap and draws deterministic edges between the identifiers it contains.

It is the mechanism by which AEP assembles its identity graph in real time.

How do you handle fuzzy matching if AEP does not do it natively?

The common approach is to resolve identities before data reaches AEP. Enterprises run fuzzy matching and deduplication in a lakehouse or master data management platform such as Databricks, Snowflake, or Reltio, assign a persistent enterprise identifier, and ingest that as the primary identity via an XDM schema.

Alternatively, they ingest pre-resolved edges from a third-party identity graph such as LiveRamp or Merkle.

How does Salesforce Data 360 identity resolution differ from Adobe Experience Platform?

Salesforce Data 360 treats identity resolution as an asynchronous table transformation, running configurable exact and fuzzy match rules in batch to materialise a Unified Individual record. Adobe Experience Platform treats it as a real-time graph problem, linking deterministic edges in-flight and assembling profiles virtually on lookup.

In practice, Data 360 handles dirty data natively but with latency, while AEP is real-time but pushes probabilistic matching upstream.