Using Consul, you could allow your teams decentrally deploy and run microservices with dynamic dependencies.

It is also possible to list the services: /catalog/service/:service

Now, how to assess these dependencies automatically if the architecture grows dynamically to get a visual representation of service inter-dependencies?

2 Answers 2


I recommend that you take a look at the NetworkX library for Python. With a script you could query Consul and build a graph of linked nodes which could be rendered to an image file and served with a web server. A Flask microservice for this would be fairly simple to set up and provide a very useful visualization of your microservices spiderweb.

  • I would add that NetworkX graph operations can help you estimate your operational risk and technical debt in addition to just visualizing the dependency graph of your SOA.
    – Jeremy
    Oct 29, 2017 at 20:34

Consul is for service location; a service can use it to find another service so long as it knows the name of the service it wants to find. Consul is not for dependency tracking, and provides no insights into what services are using what other services (in fact it cannot, because service location does not have a way to indicate what service is doing the requesting, only what service is being requested).

  • 1
    Care to explain the downvote?
    – Adrian
    Jul 10, 2017 at 18:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.