Hi Endre-

1. Yes, topics can support being DLQ’d to a queue. 

Set useQueueForTopicMessages=“true” in the deadLetterStrategy for the 
destinationPolicy you are using.

ref: https://activemq.apache.org/message-redelivery-and-dlq-handling 
<https://activemq.apache.org/message-redelivery-and-dlq-handling>

2. When a consumer is subscribed to a topic there is an implied ’subscription’ 
for each consumer. This subscription tracks the flow of messages for each 
consumer. For a non-durable (default) topic subscription, when a consumer rolls 
back messages the broker will attempt a redelivery _back_ to the same consumer 
for _n_ number of attempts based on the redelivery strategy. Once the max 
redelivery attempts is exhausted, the _broker_ moves the messages to the DLQ 
and processes the next available. 

Since every consumer on a topic has their own subscription messages are not 
redelivered to other consumers. 

ref: same link as above ;-)

Pro-tip — consuming from topics can get.. weird.  Especially, if you plan on 
trying to cluster brokers and are managing expiration, DLQ, eviction, slow 
consumers, etc. If this is a new message flow, consider using Virtual Topics 
which allow pub-sub but the consumer apps read from queues instead of topics. 
Queues are much easier for developer teams to rationalize all the flows (error 
handling, etc) and Virtual Topics are easier for admins to be explicit with the 
flow of data across multiple brokers— clustering consumers vs replicate to 
another zone, etc.

ref:  https://activemq.apache.org/virtual-destinations

Thanks,
Matt Pavlovich

> On Oct 6, 2022, at 4:41 AM, Endre Stølsvik <en...@stolsvik.com> wrote:
> 
> Hi!
> Is DLQ supported for plain Topics? I can't seem to get that to work.
> 
> Also, I wonder what would happen if a topic was subscribed to by 100
> consumers, and then 50 of them rolled back ("Nack'ed") the delivery?
> 
> Thanks,
> Kind regards,
> Endre.

Reply via email to