explaingit

apache/rocketmq

📈 Trending22,433JavaAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

A distributed messaging platform that reliably delivers messages between services, decoupling them so systems stay responsive even when parts are busy or down.

Mindmap

mindmap
  root((RocketMQ))
    What it does
      Reliable message delivery
      Decouples services
      Handles streaming data
    Messaging patterns
      Publish/subscribe
      Ordered messaging
      Transactional messaging
      Stream processing
    Key features
      Message filtering
      Replay by time
      Tag-based routing
    Deployment
      Local setup
      Docker containers
      Kubernetes

Things people build with this

USE CASE 1

Build event-driven e-commerce systems where orders trigger inventory, payment, and notification services in parallel without blocking.

USE CASE 2

Decouple microservices so they don't fail if one service is temporarily down or overloaded.

USE CASE 3

Process continuous streams of data with guaranteed message ordering and replay capabilities.

USE CASE 4

Implement transactional messaging where a message is only delivered after a related database operation succeeds.

Tech stack

JavaApache Kafka-likeDockerKubernetes

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Docker, Kubernetes, and multiple distributed components (broker, consumer, producer) to be orchestrated together.

Use freely for any purpose, including commercial use, as long as you include the Apache 2.0 license notice and document any changes you make.

In plain English

Apache RocketMQ is a messaging and streaming platform designed for large-scale, distributed applications. Think of it as a post office for software: instead of one part of a system calling another directly (which can fail if the receiver is busy or down), components send messages to RocketMQ, which stores and delivers them reliably. This decoupling makes systems more resilient and easier to scale. RocketMQ supports several messaging patterns. In publish/subscribe mode, one service publishes events and many others can listen. It also supports ordered messaging (guaranteeing messages arrive in sequence), transactional messaging (where a message is only delivered if a related database operation succeeded), and streaming (processing a continuous flow of data). Messages can be filtered by tags or SQL expressions, and you can replay past messages by time or position in the queue. You would use RocketMQ when building event-driven architectures, for example, an e-commerce platform where placing an order triggers separate inventory, payment, and notification services in parallel, without any one service blocking another. RocketMQ is written in Java, requires Java 8 or higher, and can run locally, in Docker containers, or on Kubernetes. It is an Apache Software Foundation project licensed under the Apache 2.0 license.

Copy-paste prompts

Prompt 1
How do I set up Apache RocketMQ locally and send my first message using Java?
Prompt 2
Show me how to implement publish/subscribe messaging in RocketMQ where one service publishes order events and multiple services listen.
Prompt 3
How do I guarantee messages are processed in order with RocketMQ, and what happens if a consumer crashes?
Prompt 4
Can I replay messages from RocketMQ by timestamp, and how would I do that in a Java application?
Prompt 5
What's the difference between RocketMQ and Kafka, and when should I choose RocketMQ for my microservices?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.