Project: springxd
Issue XD-3646: Composite Multiple Sink Module
This would allow multiple individual sink modules to be combined via the shell DSL so that each message sent to the composite sink module will be sent to each of the individual sink modules in turn. Internally this would probably use a recipient list router to send to each individual sink. Module options for each individual sink would be combined to create the overall options for the composite sink module in a similar way to existing composite modules. This would allow construction of streams with less communication with the message bus for example as an alternative to using a named topic in the message bus. Using this in conjunction with sinks built using existing composite module functionality (as a combination of processors and a sink) would allow more sophisticated combinations to be constructed and deployed as a single module (with no message bus communication). One particular application of this would be with tap and counter functionality. If multiple fields in a message need counted this currently needs to be done as separate streams tapping the original with the overhead of the tapped message being read from the message bus multiple times potentially on different nodes, this enhancement would allow all the counters to be combined to make a more cohesive composite counter module so that the tapped message would only need to be read once.
Story points: 5