MsgFlo can work with existing code that uses a supported message-queues system (AMQP, MQTT). Because the code is not MsgFlo-aware, another process needs to send the MsgFlo discovery message on its behalf.
For instance if we had a system that takes data on a queue named
transforms it and then sends the results on queue
the information can be declared in a YAML file:
# File: participants/ProcessSomething.yaml component: ProcessSomething label: Process input and send some output icon: ambulance inports: in: queue: process/A/in type: string outports: out: queue: process/A/out type: string
And then run
msgflo-register-foreign to publish the information
queue key supports substituting
#ROLE. This allows a single YAML file to declare a component
which can be instantiated multiple times - each with a different role and queue name.
Several real-life examples of foreign participant declaration can be found in c-flo.