Skip to content

3.12 Convergence — the same node reached two ways

MATCH (p1:Person {name:'Ada Lovelace'})-[:HAS_HUBSPOT_CONTACT]->(c:HubSpotContact)<-[:HAS_HUBSPOT_CONTACT]-(p2:Person {name:'Ada L.'})
RETURN c.company

Means: two graph aliases for the same person both resolve to the same HubSpot contact.

How it executes: both anchors fetch, but because HubSpotContact declares an identity property (its email/id), the two fetched records MERGE into one transient node with two incoming edges — not two duplicate contacts. Any join that can fan in this way requires an identity property so convergent paths dedupe.