Search code examples
javaspring-integrationesbmicroservices

How to get a visualization of cross-app Spring Integration flow?


We have a microservices architecture, i.e. each of the main components of our system is designed to be run as a separate Java app (jar or war).

We use Spring Integration to facilitate communication between the components (over a MQ service).

How can we get a graphical diagram of the whole integration layer of the system, given that each component has its own Spring Integration XML config?

Note that we know how to do it within a single application. The question is how to do it cross-app.

Example: Component 1 generates stream of POJOs -> MQ -> Component 2 serializes POJO object graph to JSON -> MQ -> Component 3 saves JSON to DB

Also, if a viable solution would be to create a single Spring Integration config, then how to make sure all components use it?


Solution

  • This apparently can't be done easily at the moment.

    My research brings me to the conclusion the only way is to use external tools:

    • New Relic Service Map - Commercial. Probably only diagramming running microservice systems, because it's a monitoring system.
    • AppDynamics - Commercial. Probably only diagramming running microservice systems, because it's a monitoring system.
    • Spigo - Open source. One could parse Spring Integration XML configs, generate input for Spigo, and generate a graph.
    • micro-infra-spring - Open source. For diagramming running microservice systems. Requires ZooKeeper.