We have a company "ACME" with a network department:
Hint: company is a "context of same ownership". All data in this context is owned by this company.
Let's assume
- datasource 1 are the firewall rules and
- datasource 2 are the routing tables.
Hint: scope is a "context of same permission". All data in this context are subject to the same access rights.
Data from different products or sources must be converted into an open, standardised (JSON-LD) format. This is the task of d4 adapter.
Ok, now it's converted but where should it go? It should be saved. For this we need a d4 cache with a volatile storage.
So now we store data from datasource 1 in a d4 cache, but we cannot see or query this data.
We need a way for a user to query it via the d4 UI user interface.
Hint: The user has access to the UI and REST interface. Modern web frameworks such as react work like this.
Now we have three µServices (d4 UI, d4 adapter, d4 cache) in this scope 'Networking' but no connection to the outside world.
So the data do not come out of the scope. We are changing that now.
With the necessary rights (it is a different scope), the user can now access the data.
Hint: The user does not have access to a user interface here but can work directly with the REST interface.
Let's think a little bigger
The user can now access data from both datasource 1 and datasource 2 from different scopes.
Let's add a new company "Oceanic Airlines".
The user can find out here which booking systems are running, but not where.
The company "Oceanic Airlines" obtains its services from "ACME".
We expand the picture with possibilities to retrieve this information as well.
Now the user can determine what booking systems are running and where.