I think I’ve figured out how to stop this behaviour. I had outbox enabled on all three endpoints. I disabled outbox and it now consistently publishes/handles both copies of the message.
I suspect it relates to my question here - PG Transport + PG Persistence + Transactional Session - where I wasn’t sure exactly how I should be setting this up. But for sure, disabling outbox has fixed this issue, and from what I can see, ITransactionalSession
still works as it should on the publisher, from what I can tell.
What I suppose would be interesting to know is why enabling outbox caused this behaviour. What I did see was, when I turned off the consumers, the message was written to both queues, but then when I turned the consumers back on, only one of them received it. Almost as if some kind of idempotency check kicked in?