EMQ uses Tags to implement its multi-reader feature.
Multi-readers means multiple receivers in a Queue(Message receivers/processors). For a single reader, when a message is received by a receiver, it will not be received by other recipients during the message invisible time. For multi-readers, each receiver is completely independent and will receive all messages in the Queue (except for receivers who have configured filters), which means that, each reader must handle the message at least once no matter someone else has handled the message or not.
It is important that there is a difference between "multiple receivers" and "concurrent receiver". For one receiver on a specific implementation, there may be multiple concurrent receivers (multi-threaded or multiple processes) to increase throughput. All messages received by all concurrent receivers are grouped together to form a full amount of data of a single reader.