OK, based on the comments, here is a suggestion that will scale and does not require significant changes in applications.
From the manufacturer’s side, I will copy the message selection criteria into the message property, and then post the message in the subject. The only change that is required here for the application is the message property. If for some reason you do not want to publish it using the built-in function, you can define an alias by topic. The application believes that it sends messages, but they really are publications.
On the consumer side, you have several options. One of them is to create administrative subscriptions for each application and use the selector in the subscription. Then the messages are sent to a dedicated queue for each consumer based on the selection criteria. Applications believe that they simply consume messages.
Alternatively, the application may simply subscribe to this topic. This gives you the option of a dynamic subscription that does not receive messages when the application is disconnected (if you really need it) or a long-term subscription functionally equivalent to an administrative subscription.
This solution will easily scale to the volumes you specify. Another option is that the manufacturer does not use properties. Here, the consumer application consumes all messages, breaks the message payload on each, and decides whether to process or ignore the message. In this decision, the manufacturer is still publishing the topic. Any decision associated with a direct queue makes the manufacturer know all the destinations. Add another consumer, change the manufacturer. In addition, there is a place for each destination.
In the worst case, the producer creates several messages, and the consumer must read each to decide whether he will be ignored. This parameter may have scaling problems, depending on how deep the selection criteria field is in the payload. A really long XPath expression = poor performance and no way to tune WMQ to compensate for this, since latency is all in the application at this point.
Best case, the producer sets the property of the message and publishes. Consumers choose by property in their subscription, or an administrative subscription does it for them. Whether this solution uses application signatures or administrative signatures does not matter in terms of scalability.