3

How to document interactions over message queues? for refactoring and modification purposes.

The scenario I'm facing: I have multiple applications (partially acting like micro-services but not really since it is a very old system) communicating over a message queue (Tibco ems actually; so a little more than a simple message queue but acting mostly the same as a simpler message queue). I have access to the source code of most of them(not a lot of tests in it so), and I have a tool (GEMS from Tibco) that can monitor the bus for me.

The objective is to document all the kinds of messages between the applications (in a sequence diagram or a similar diagram(s)) so that later I can perform modifications on the system.

How to go about it and assure that I don't miss anything?. Recommendation of a systematic or a tested procedure/tool are appreciated.

1 Answers1

0

One approach would be to develop a small java application using the EMS Admin API to list queues and topics with the related Producers and consumers applications. You have the information in GEMS but you would have to collect it manually. This would give you just a technical view on who is sending / listening to which queues / topics. To model interactions like this application is sending a message to this other app that finally send another message to this other app you would have to look in application code and you may use UML to model the interactions. You may also have a look to the MakeDoc tool, but it might be more oriented for BusinessWorks I think. http://www.behaimits.com/makedoc/introduction/

EmmanuelM
  • 337
  • 1
  • 6
  • This is what we ended up doing at the end, it was a nightmare due to the fact that in the project/s that we were reverse engineering you can trigger sending message using aspects, or directly using jmsTemplate or through methods hidden inside custom libraries and you could receive messages through listeners in the project or hidden inside included libraries. The trick was finding a way through the madness to understand the logic behind queue names and library design to account for all the instances of interactions on the bus. – Mohamed Talaat Harb Sep 20 '20 at 09:54