CSDM Relationship Type Error
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-18-2025 08:07 AM
There is a data flow. Application Service ABC is sending data to Application Service XYZ. The data that ABC is sending gets housed in LMN.
- ABC sends data to::receives data from XYZ
- ABC sends data to::receives data from LMN
- XYZ receives data from::sends data to ABC
- XYZ receives data from::sends data to LMN
- LMN sends data to::receives data from XYZ
- LMN receives data from::sends data to ABC
If ABC or LMN goes down XYZ is impacted but it is not down. Just the data received from ABC will not be available and could give an error or it may provide old data (depending on how it functions). However, a business service offering (ALX) of XYZ could be down because of this. This means:
- ALX depends on::used by LMN
- ALX depends on::used by ABC
- ALX depends on::used by XYZ
So you "could" say:
- ALX receives data from::sends data to LMN
- ALX receives data from::sends data to ABC
- ALX receives data from::sends data to XYZ (not really this one)
This means that depends on and receives data from has the same data flow.
ABC -> LMN -> XYZ <- ALX
ABC sends data to -> LMN send data to (or used by)-> XYZ used by <- ALX
ALX -> XYZ <- LMN <- ABC
ALX depends on -> XYZ receives data from (or depends on) <- LMN receives data from <- ABC
I don't see how there will ever be a scenario where sends data to = depends on.
Some have argued, ABC depends on LMN to get the data to XYZ. That almost makes perfect sense but what I think is really happening is XYZ depends on LMN to get the data from ABC. If ABC's job is to produce something, it's doing it's job whether that something is there to hold that data or not. It's function isn't impacted by the application it's sending it's data to. However, if LMN isn't functioning, it's an obvious problem for LMN. It is also a problem for XYZ because they are depending on LMN for that data that they are supposed to get from ABC.
The way I look at it and the way I've explained it is:
You work for a company and they pay you. They pay you by putting the money they own you into your bank in your bank account with the information you provided them. Job -> Bank -> You. Once your job sends your money to your bank anything that happens with the money doesn't impact your job. If you go to your bank and your money isn't there and your job says they sent it the same as they always have with no issues, it's not impacting them. None of their functionality is impeded. If you bank changed routing numbers and didn't tell you so you didn't tell your job, your job still functioned properly. The problem is at the bank and your job is not dependent on that. You are because you are upstream (ServiceNow flow)/downstream (developer flow). You can only be dependent on the things that come before you in the flow, not after you.
Is this the incorrect view?