OpenMessaging, which includes the establishment of industry guidelines and messaging, streaming specifications to provide a common framework for finance, e-commerce, IoT and big-data area. The design principles are the cloud-orientedness, simplicity, flexibility, and language independency in distributed heterogeneous environments. Conformance to these specifications allows the development of a heterogeneous messaging applications across all major platforms and operating systems. JIRA
{% include toc %}
So far, RocketMQ only supports message filtering feature by TAG
, but one message can only own one tag, which is too limited to meet complex business requirements.
So, we want to define and implement a reasonable filter language based on a subset of the SQL 92 expression syntax to support customized message filtering. JIRA
In order to use RocketMQ in big data related scenarios, batch messaging is necessary and will bring million-level TPS for RocketMQ. JIRA, PR
Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continuously.
A Consistent Hash allocate strategy is valuable for developers who care more about stabilization than averaging.
So we decided to support CHAS as an extra choice in consumer load balancing. JIRA, PR
As we know, messages in the same queue can be consumed sequentially. So we always send the congeneric messages to the same queue to guarantee ordering, which will cause hot-point issue.
So it'd be cool if we can support a new global order messaging mechanism without the hot-point problem. JIRA
Undoubtedly, transaction messaging is frequently used in most business.
But users have to implement transaction mechanism by themselves for now, so there is a potential need of a database implementation to solve the problem.
Now we can support distributed transaction messaging to make it convenient for the users and help them handle complex business. JIRA
The duplicated messages will impose extra cost if user needs non-repeating messages.
In most cases, user needs to store the consume records to determine if a message is duplicated, and the store stage should guarantee consistency. So we need to support a strict and non-redundant message delivery mechanism. JIRA
RocketMQ uses master-slave as HA architecture, which has low latency and high throughput, but this program needs human intervention to recover from abnormal situations.
So, we want to support a multi-replication high availability/reliability mechanism, without human intervention. JIRA
Provide a docker image for easy deployment and management, optimize for the latest version. JIRA
MQTT is a machine-to-machine (M2M)/“Internet of Things” connectivity protocol, which has been widely used in IoT. Support MQTT, give RocketMQ the power to connect everything. JIRA
RocketMQ, as a message-oriented middleware, plays a connector role in distributed environment, so in order to embrace the ecological preferably, RocketMQ community needs a series of external projects to integrate with other excellent projects.