Hi, Rongtong Jin:


I've updated the RIP document with a more detailed design:



- 中文版: 
https://github.com/imjyz/rocketmq/blob/develop/docs/cn/RIP-84-%E6%B6%88%E8%B4%B9%E8%80%85%E6%A0%87%E7%AD%BE.md
- English version: 
https://github.com/imjyz/rocketmq/blob/develop/docs/en/RIP-84-Consumer-Tag.md


Regarding the concern about lightweight implementation: my proposal only 
introduces an additional cache—no new components are added, and the client-side 
usage remains sufficiently lightweight.


For other questions (due to their complexity and volume), please refer to the 
detailed answers in the documentation:


1. 
https://github.com/imjyz/rocketmq/blob/develop/docs/en/RIP-84-Consumer-Tag.md#broker-side
2. 
https://github.com/imjyz/rocketmq/blob/develop/docs/en/RIP-84-Consumer-Tag.md#rejected-alternatives









At 2025-12-11 11:26:33, "Rongtong Jin" <[email protected]> wrote:
>Hi, imjyz, the proposal may need a more detailed design, especially on the 
>broker side.
>
>In the current model, all consumers within a consumer group share the same 
>subscription, and messages pulled from a queue can be assigned to any consumer 
>in the group. However, in this new scenario, each consumer effectively has a 
>different "subscription" (via tag-based filtering). This raises several 
>important questions:
>
>How should messages be cached when pulled, given the divergent filtering logic 
>per consumer?
>In the event of consumer failures, how can we ensure no message loss and 
>minimize duplicates?
>If a single consumer gets stuck or falls behind, could its associated cache 
>grow indefinitely?
>Given that the goal is to enable canary deployment capabilities, I believe 
>this part of the implementation should ideally remain lightweight.
>
>Additionally, an alternative approach—creating a separate consumer group for 
>each canary variant and configuring distinct subscription filters—seems 
>capable of achieving similar outcomes (albeit with limitations in fine-grained 
>traffic control). This alternative is simpler to implement and doesn’t require 
>changes to the existing core logic.
>
>Could you clarify the specific advantages of this proposal over that approach?
>
>&quot;贾彦昭&quot; &lt;[email protected]&gt;写道:
>> To the RocketMQ Developers and Community,
>> I am initiating a formal discussion for RIP-84: Consumer Tag.
>> 
>> Motivation
>> 
>> I hope RocketMQ can better support use cases such as gray-scale rollouts and 
>> multi-environment deployments. To this end, I'm proposing a more flexible 
>> message consumption model to enable dynamic and environment-aware 
>> subscription behaviors.
>> 
>> Proposal Link
>> 
>> Since I don't have write access to the official wiki, the full RIP document 
>> is available here: 
>> 
>> 
>> https://github.com/imjyz/rocketmq/blob/develop/docs/en/RIP-84-Consumer-Tag.md
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you for your review. I look forward to your thoughts and discussion on 
>> this proposal.
>> 
>> Best regards,
>> 
>> imjyz

Reply via email to