Dear All, I want to propose a change to the current RabbitMQ connector.
Currently the RMQSource is extracting the body of the message which is a byte array and pass it to a an instance of a user implementation of the DeserializationSchema class to deserialize the body of the message. It also uses the correlation id from the message properties to deduplicate the message. What i want to propose is instead of taking a implementation of a DeserializationSchema in the RMQSource constructor, actually have the user implement an interface that would have methods both the output for the RMQSource and the correlation id used not only from the body of the message but also to it's metadata and properties thus giving the connector much more power and flexibility. This of course would mean a breaking API change for the RMQSource since it will no longer take a DeserializationSchema but an implementation of a predefined interface that has the methods to extract both the output of the RMQSource and the to extract the unique message id as well. The reason behind that is that in my company we were relaying on another property the message id for deduplication of the messages and i also needed that information further down the pipeline and there was absolutely no way of getting it other than modifying the RMQSource. I already have code written but as the rules dictates i have to run it by you guys first before i attempt to create a Jira ticket :) Let me know what you think. Regards, Karim Mansour