I need to integrate 3 systems, each one with its own REST API. These systems need to share some information, let's say about products (just to simplify the discussion). Each system has its own representation of the same physical product, with its own internal ID.
I'm planning to "connect" these systems using ESB (WSO2 ESB to be more precise).
When talking to another system, message sending system (the one that initiates messages exchange) should ideally know remote system product ID, to identify the product it needs to interact with. However, I have a feeling that it's too much of a coupling, as one system should not be aware of another system internal IDs. Also, having more systems to integrate in the future, all JSON messages that are exchanged between systems should be modified and product IDs of new systems saved in each system local data storage.
How do you deal with similar situations? How do you relate internal IDs of different systems that should talk to each other, without saving each other system internal IDs locally?
I'd appreciate your suggestions.