Немного сложно следить за всеми услугами без диаграммы, но я сделаю все возможное. Вы говорите, что C передает идентификатор обратно в текущем процессе, поэтому я предполагаю, что эта структура вызова
A -> B (create ID) -> C -> A
Теперь вы хотите ввести
A -> D -> C -> A
И вам нужен Cзнать, какое сообщение из пути ADC связано с каким сообщением из пути ABC. Это правильно?
Лучшее решение - позволить A создать идентификатор для всех, например:
A (Create ID) -> B (use ID given by A) -> C -> A
A (Use same ID) -> D -> C -> A
Если вы не можете изменить код для создания одного идентификатора в Aсервис, попробуйте 2 разных идентификатора сообщения. Это было бы неуклюже, так как вам нужно где-то хранилище, чтобы вы могли сказать, что msg123 поступает из того же источника, что и msgABC, но это решит проблему.
Это даст вам
A -> B (create ID1) -> C -> A
A (Create ID2) -> D -> C -> A