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

Reply via email to