применение свойств сообщений в RabbitMQ на уровне exchange

#rabbitmq

Вопрос:

У меня есть куча разнообразных приложений (разного возраста, на разных языках), которым скоро понадобится использовать RabbitMQ для отправки сообщений.

Я хотел бы обеспечить соблюдение нескольких соглашений, таких как «все отправляемые сообщения должны иметь заголовки source-application и creationTimestamp «. Если бы технический стек был согласованным, я бы реализовал небольшую библиотеку, которая абстрагирует это, но поскольку это не так, я думаю, что имеет смысл иметь «привратника» на уровне exchange и предотвращать ввод недопустимых сообщений в систему. В идеале это было бы частью конфигурации RabbitMQ и частью образа, который я развертываю в разных средах.

возможно ли это с помощью RabbitMQ ? Я провел небольшое исследование, но не смог найти ничего, показывающего, как создать своего рода политику на уровне exchange, которая принимала бы только сообщения, обладающие такими свойствами, и отбрасывала остальные, сообщая приложению публикации «исправить» свои сообщения перед их отправкой.