2

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.

Community
  • 1
  • 1
Jacek
  • 194
  • 1
  • 11
  • Which system is "mastering" Product? – tom redfern Jun 01 '16 at 21:44
  • @TomRedfern: One of the systems is always "mastering" specific information. It means that only one system has "original ID" of products, and other systems need to interact with those products in a non-ambiguous way (that's why I thought of product IDs). However, each system also needs to maintain an internal identity of the same product, for a purpose of its own operations and responsibilities in the whole enterprise. – Jacek Jun 01 '16 at 22:10

0 Answers0