Как убедиться, что сообщение, отправленное брокеру сообщений, содержит все необходимые данные?

#amqp #audit #messagebroker

Вопрос:

Я разрабатываю решение для аудита, и одно из нефункциональных требований, связанных с производительностью, гласит, что записи аудита должны создаваться без замедления основного потока, а одно из функциональных требований гласит, что запись аудита должна содержать определенный список полей.

Есть идея иметь брокера сообщений поверх основного приложения и отправлять сообщения туда асинхронно, также есть идея иметь потребителя, который будет прослушивать сообщения от брокера и хранить их в определенной базе данных. Эти несколько новых компонентов должны охватывать NFR, связанные с упомянутой ранее производительностью.

Вопрос в том, как в этом случае могут быть охвачены функциональные требования. На самом деле, как убедиться, что сообщение, отправляемое брокеру сообщений, содержит все необходимые данные, чтобы избежать огромной связи между приложением и брокером сообщений и используется протокол AMQP?