Skip to content

RocketMQ Improvement Proposal

yuz10 edited this page May 18, 2024 · 128 revisions

In the last few years, we use the Jira(migrated to Issues) to trace issues or collect the new idea from the community. It’s a nice way for a feature request but not very formal and easy to trace and manage. So We introduce the RIP - RocketMQ Improvement Proposal mechanism to replace the current Feature Request Process.

RIPs should be used for significant user-facing or cross-cutting changes, not small incremental improvements. When in doubt, if a committer thinks a change needs a RIP, it does.

It is easy to start a RIP from sending proposals to dev mail lists. And the whole procedure of a RIP may follow the process:

  1. Create a proposal as the template. Take the next available RIP number and give your proposal a descriptive heading.

  2. Start a [DISCUSS] thread on the Apache RocketMQ dev mailing list. Please ensure that the subject of the thread is of the format [DISCUSS] RIP-{your RIP number} {your RIP heading} The discussion should happen on the mailing list not on the wiki since the wiki comment system doesn't work well for larger discussions. In the process of the discussion, you may update the proposal. You should let people know the changes you are making. When you feel you have a finalized proposal.

  3. Once the proposal is finalized and some committers(Shepherd) are willing to support, please call a [VOTE] to have the proposal adopted. These proposals are more serious than code changes and more serious even than release votes. The criteria for acceptance is the lazy majority. The vote should remain open for 72 hours.

  4. Please update the RIP wiki page, and the index below, to reflect the current stage[accept, reject, active, inactive, waiting for owners] of the RIP after a vote. This acts as the permanent record indicating the result of the RIP (e.g., Accepted or Rejected). Also, report the result of the RIP vote to the voting thread on the mailing list so the conclusion is clear.

RIP List

RIP Number Description Accepted Activity Release
RIP-1 RocketMQ MQTT Bridge yes inactive no
RIP-2 RocketMQ Spring yes active yes
RIP-3 RocketMQ Python Client yes active yes
RIP-4 RocketMQ Go Client yes active yes
RIP-5 RocketMQ ACL yes active yes
RIP-6 RocketMQ Message Tracing yes active yes
RIP-7 Multiple Directories Storage Support yes active yes
RIP-8 Consumer RACK Support yes waiting for owners no
RIP-9 RocketMQ Develop Guide yes active yes
RIP-10 RocketMQ Unit Test yes waiting for owners yes
RIP-11 Evolution of The Next Decade Architecture for RocketMQ yes active no
RIP-12 RocketMQ Replicator yes active yes
RIP-13 RocketMQ Console Project yes active yes
RIP-14 RocketMQ Community Operation Conventions yes active yes
RIP-15 RocketMQ IPv6 Support Project yes active yes
RIP-16 RocketMQ RPC(Request-Response model) Support yes active yes
RIP-17 RocketMQ HTTP Proxy Support yes waiting for owners no
RIP-18 Metadata Management Architecture Upgrade yes active no
RIP-19 Server-side Rebalance, Lightweight Consumer Client yes active yes
RIP-20 Streaming Tiered Storage Optimize yes active no
RIP-21 Logical Queue Abstraction for Static Topic and Fast Scale-out yes active yes
RIP-26 Improve Batch Message Processing Throughput yes active yes
RIP-27 Auto Batching in Producer yes active no
RIP-28 Light Message Queue (LMQ) yes active yes
RIP-29 Optimize RocketMQ NameServer yes active no
RIP-30 Support Compaction Topic yes active yes
RIP-31 Support RocketMQ BrokerContainer yes active no
RIP-32 Slave Acting Master Mode yes active yes
RIP-33 RocketMQ MQTT yes active yes
RIP-34 Support Quorum Write and Adaptive Degradation in Master Slave Architecture yes active no
RIP-35 Use Rocketmq Instead of MySQL as State Store yes active no
RIP-37 New and Unified APIs yes active yes
RIP-38 RocketMQ EventBridge yes active yes
RIP-39 Support gRPC Protocol yes active yes
RIP-40 RocketMQ Play Book yes active no
RIP-41 RocketMQ E2E Test yes active no
RIP-42 Support Schema Registry yes active no
RIP-43 Support Timing Messages with Arbitrary Time Delay yes active yes
RIP-44 Support DLedger Controller yes active yes
RIP-45 RocketMQ Replicator 2.0 yes active no
RIP-46 Observability Improvement for RocketMQ yes active yes
RIP-47 Data Layout V2 Discussing active no
RIP-48 Enhance Server-side Offset Management Ability yes active yes
RIP-49 RocketMQ Remoting Module Improvement yes active yes
RIP-50 RocketMQ Transaction Message Improvement yes active yes
RIP-51 Pop Orderly Improvement yes active yes
RIP-52 Optimize Building ConsumeQueue yes active yes
RIP-54 Backporting of Remoting-based Client yes active no
RIP-55 Support Remoting Protocol in RocketMQ Proxy Module yes active yes
RIP-56 Replace Logging Module with Shaded Loback yes active yes
RIP-57 Tiered storage for RocketMQ yes active yes
RIP-58 RocketMQ Streams improvement yes active no
RIP-59 Support DLedger Controller Snapshot yes active no
RIP-61 RocketMQ EventBridge Runtime yes active no
RIP-62 Cold read control yes active yes
RIP-63 Queue selection strategy optimization Yes active yes
RIP-64 Heartbeat Optimization Yes active yes
RIP-65 Tiered Storage Optimization Yes active no
RIP-66 Support KV(Rocksdb) Storage Yes active no
RIP-67 jRaft-Controller Implemention Yes active no
RIP-68 RocketMQ ACL 2.0 Discussing active no
Clone this wiki locally