https://ones.com/blog/knowledge/transitive-dependency-example-software-architecture/