I had a similar-ish situation here: Referencing foreign UIDs in dgraph - #2 by janardhan
One thought is you can just store the source system ID in a string predicate. So you would run a mutation like this when you’re loading your foreign entities into Dgraph:
mutation {
set {
_:sourceEntity1 <ForeignUID> "[string representation of source 256-bit UID]" .
_:sourceEntity2 <ForeignUID> "[string representation of source 256-bit UID]" .
....
}
}
Then to index the ForeignUID predicate and make it searchable with the full foriegn UID, you would add ForeignUID to the Dgraph schema with:
mutation {
schema {
ForeignUID: string @index(exact) .
}
}