Matthias Radestock wrote:
I can think of three ways of doing that with RabbitMQ...
1) The publisher sends the message N times to a direct exchange, each
time with an individual security token as the routing key. Consumers
bind to that direct exchange with their token. (You could also just use
the default exchange, if the consumer's queues are named with their
token). The downside of this approach is the cost of having to send (and
for the server to process) the same message multiple times.
2) Write a custom exchange type plug-in. This could work exactly like a
headers exchange but not permit empty bindings. Or it could work more
like a direct exchange, with the producer perhaps listing the tokens in
the message's routing key, comma-separated.
3) Write a proxy that prevents empty bindings.
I can think of three ways of doing that with RabbitMQ...
1) The publisher sends the message N times to a direct exchange, each
time with an individual security token as the routing key. Consumers
bind to that direct exchange with their token. (You could also just use
the default exchange, if the consumer's queues are named with their
token). The downside of this approach is the cost of having to send (and
for the server to process) the same message multiple times.
2) Write a custom exchange type plug-in. This could work exactly like a
headers exchange but not permit empty bindings. Or it could work more
like a direct exchange, with the producer perhaps listing the tokens in
the message's routing key, comma-separated.
3) Write a proxy that prevents empty bindings.
header included in the message will be passed to *all* consumers, thus
allowing consumers to learn each other's secrets.
Back to the drawing board...
Matthias.