I’m working in a codebase that generates a graph to run production jobs. The edges in the graph represent dependencies, e.g.,
Edge 1: A->C
Edge 2: B->C
means that jobs A, C need to be run before B. I’m not the person that originally implemented the graph (they left the company), and I’m a bit confused about some of the edges that appear extraneous.
e.g., we have several sets of edges like this:
Edge 1: A->C
Edge 2: B->C
Edge 3: A->B
where Edge 1 is seemingly redundant. Is there a benefit to this kind of design that I’m not privy?
The only thing I could think of is if the dependencies were to change, e.g., we remove node B
, someone might forget to add the edge A->C
, but that doesn’t seem like a valid motivation because that would motivate an exponential increase in number of specified edges where most of them would be redundant.