Корреляция сообщений
Как правило сообщения не независимы и образуют некоторую последовательность. Простейшим вариантом такой последовательности
может быть пара сообщений "запрос-ответ".
Однако физически сообщения могут приходить в случайной последовательности и нельзя полагаться на то, что
при отправке запросов с номерами 1 и 2, полученные последовательно ответы 1 и 2 будут соответствовать запросам с такими же
порядковыми номерами.
Для того, чтобы можно было отвязаться от порядка физического движения сообщений через транспортные системы, в стандарте
используется набор узлов CorrelationId.model, фактически состоящий из одного узла -
<correlationId>.
Принцип использования этого узла следующий. Отправляя исходное сообщение, инициирующее какой-либо бизнес-процесс, отправитель
задаёт для него уникальный <correlationId>. Далее, все сообщения, относящиеся к этому
бизнес-процессу также должны содержать тэг <correlationId> с тем же значением, что
и инициирующее сообщение.
Так, например, если сообщение <nonpublicExecutionReport> содержит узел
<correlationId> 123 </correlationId>, то любое из последующих сообщений <nonpublicExecutionReportException>,
<nonpublicExecutionReportAcknowledgement>, <nonpublicExecutionReportRetracted>
должны также содержать элемент <correlationId> 123 </correlationId>.