Search code examples
architecturejmsmicroservicesmessage-queuetibco-ems

How to document interactions over message queues?


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.


Solution

  • 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/