I have a real life SOA problem that I can't seem to solve in a clean SOA manner.
I have many distributed producers of "update thing" messages which get consumed by the "thing manager".
One of the features of the "thing manager" is to publish to a topic notification that the "thing" has changed. This allows other interested services to react to the change.
One of the "update thing" producers is itself a listener to the topic. It is only really interested in "thing updates" from other systems. But it finds itself consuming and processing updates from the "thing manager" that it itself caused in the first place (and hence already knows about). Luckily the feedback loop is broken at that point.
How best to solve this problem in a clean SOA manner? I do not class adding metadata to the message indicating message source to be a clean solution; a message consumer should never have to know where a message came from or is going to.