I have let's say 2 (but they'll become more in the future) fully decoupled systems: system A and system B.
Let's say every piece of information on each system has an informationID. There's nothing stopping the informationID to be the same on different systems. What univocally identifies a piece of information across all systems is a Source-informationID pair.
Let's say I need to export a piece of information from System A to system B. I then want to export the same piece of information from System B and re-import it into System A and I need to be able to recognize that's the same piece of information.
What's the best way of doing this in people's experience?
This is what I am thinking to do:
- Setup a message bus between the systems with message queues.
- Setup endpoints for each system that will monitor changes and generate commands wrapped into messages that will be pumped into queues (for example when a piece of information is created/deleted/updated).
- Assign ranks to the endpoints relative to create/delete/update commands in order no to rely on system names but only on a general hierarchy - so that each system doesn't need to know about the others.
- Assign a treshold on update/delete/create command to each endpoint so that commands not meeting the treshold requirement will be filtered out and not processed
This won't solve the fact that I still need to carry around originalSource+originalSourceID though.
Any help appreciated.