D
D
Dmitry Petrov2019-08-08 17:30:28
Software design
Dmitry Petrov, 2019-08-08 17:30:28

Data isolation - Should the external data provider system know about the internal identifiers of the data consumer system?

There are two systems - the NSI management system (System1) and a certain production system (System2).
The nomenclature is created in System1, then transferred to System2.
The hierarchy of nomenclature in the systems is different - different folder structure, in other words.
When System1 sends item data to System2, it first searches in some of its internal storage for which System1 folder corresponds to the System2 folder. The data sent to System2 contains the ID of the System2 folder. That is, System1 must know everything about the folder structure of System2 and store all correspondences within itself.
Further, System1 stores the item ID from System2. System1 has its own identifier and it is, in general, a reference one, but it is the System2 identifier that is used to exchange data with System2.
In other words, more concisely, System1, although it is a supplier of information for other systems, stores some of the information of these other systems, their identifiers. Is it correct? Should System1 even know anything about the existence of folders inside System2? Should I know that in System2 the item actually has a different identifier?
Isn't it more correct to exchange data on the nomenclature exactly by the identifier of System1, and System2 already stores all the links within itself, if it needs it?
PS What is the name of the whole area of ​​architectural planning related to the question raised?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
I
Ivan Shumov, 2019-08-08
@inoise

This is a service architecture, ordinary. No, they should not know anything about each other, except for external contracts. The supplier should not know anything about the consumer at all, and the consumer only knows what the supplier provides under the contract. If they both have something in common, then it is either put into a contract or into a separate service

A
Adamos, 2019-08-08
@Adamos

"Well, of course, of course, it goes without saying - no!" (Gandalf in Russian translation).
This area is called "encapsulation", and it is the very basics of architecture.

A
Artemy, 2019-08-09
@MetaAbstract

Theoretically, System 1 is indifferent to all this, but information is rarely superfluous. In practice, in this case, the situation seems to be that the synchronization algorithm works on the side of the Data Source and, for some reason, the Receiver has its own identifiers. These reasons are also desirable to understand. I would make a synchronization algorithm on the Receiver side and use the standard development platform mechanisms, if any.
This area is called data synchronization.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question