Project: springxd
Issue XD-3723: Improve support for custom headers when using Kafka Message Bus
I understand Kafka natively does not have the concept of message headers. However, Spring Integration messages do and a lot of SI components are built specifically for dealing with message headers (header-enricher, header-filter, header-value-router, etc...). In addition, message headers are very useful for tracking meta-information about messages as they progress through a system. With the implementation of https://jira.spring.io/browse/XD-3621; Spring XD has limited support for custom headers when using Kafka as a transport. I say limited, because it is required to list all custom headers explicitly in servers.yml in order for the headers to be retained by the MessageBus. This is less than ideal because it means that it is necessary to know all potential custom header values a user will require before starting the environment. It would be nice to extend this functionality so that it is not necessary to list custom headers in the configuration. Instead, when operating in mode=embeddedHeaders, Spring XD will simply embeds ALL headers in the Kafka message. Or alternatively, allow for a wildcard in the 'headers' configuration option so that it is not necessary to exhaustively list all possible custom header values prior to starting the system.
Story points: 5