Cross-boundary data-flow analysis

We all know about static analyzers that can deduce whether an attribute in a specific class is ever used, and then asking you to remove it. There is an endless examples likes this which I don't even need to go through. However, after working in software engineering for more than 20 years, I found that a lot of bugs happen across the micro-service or back-/front-end boundaries. I'm not simply referring to incompatible schemas and other contract issues. I'm more interested in the possible values for an attribute, and whether these values are used downstream/upstream. Now if we couple local data-flow analysis with the available tools that can create a dependency graph among clients and servers, we might easily get real-time warning telling us that "adding a new value to that attribute would throw an error in this microservice or that front-end app". In my mind, that is both achievable and can solve a whole slew of bugs which we try to avoid using e2e tests. Any ideas?

Apr 16, 2025 - 04:23
 0
Cross-boundary data-flow analysis

We all know about static analyzers that can deduce whether an attribute in a specific class is ever used, and then asking you to remove it. There is an endless examples likes this which I don't even need to go through. However, after working in software engineering for more than 20 years, I found that a lot of bugs happen across the micro-service or back-/front-end boundaries. I'm not simply referring to incompatible schemas and other contract issues. I'm more interested in the possible values for an attribute, and whether these values are used downstream/upstream. Now if we couple local data-flow analysis with the available tools that can create a dependency graph among clients and servers, we might easily get real-time warning telling us that "adding a new value to that attribute would throw an error in this microservice or that front-end app". In my mind, that is both achievable and can solve a whole slew of bugs which we try to avoid using e2e tests. Any ideas?