
Apache Kafka
Scalable distributed event streaming platform for real‑time data pipelines
- Stars
- 32,128
- License
- Apache-2.0
- Last commit
- 15 hours ago
Messaging systems for asynchronous communication (pub/sub, point-to-point queues).
Message brokers and queue systems provide asynchronous communication channels that decouple producers from consumers, allowing services to operate independently and improve resilience. They support patterns such as publish/subscribe and point-to-point messaging, handling buffering, load-balancing, and fault tolerance. Open-source options like Apache Kafka, RabbitMQ, Apache Pulsar, NSQ, and others each emphasize different trade-offs in scalability, durability, ordering guarantees, and operational complexity. Selecting the right broker depends on workload characteristics, performance requirements, and the surrounding technology stack.

Scalable distributed event streaming platform for real‑time data pipelines

Scalable, low‑latency pub‑sub platform for real‑time data streams

Robust multi-protocol messaging broker for cloud-native applications

High-performance, fault-tolerant distributed message queue for modern workloads
Scalable distributed event streaming platform for real‑time data pipelines
RabbitMQ delivers reliable, high-throughput messaging across AMQP, MQTT, STOMP, and streaming protocols, with extensive tooling, Kubernetes support, and commercial options for enterprise deployments.
Assess how the system handles increasing message volume and number of clients, including horizontal scaling, partitioning, and load-balancing mechanisms.
Evaluate the broker's ability to reliably store messages to disk or replicated storage, ensuring data is not lost during failures.
Determine whether the platform provides FIFO ordering, per-partition ordering, or no ordering guarantees, and how that aligns with application needs.
Check the range of supported protocols (AMQP, MQTT, HTTP, gRPC) and client libraries for the languages used in your stack.
Consider installation, configuration, monitoring, and required expertise to run the broker in production.
Look for integrations with monitoring, logging, schema registries, and connectors that simplify building pipelines.
Most tools in this category support these baseline capabilities.
Fully managed message queuing service for decoupling and scaling distributed applications
Fully managed enterprise message broker for decoupling applications via message queues and publish/subscribe topics
Global messaging service for event ingestion and fan‑out
Amazon Simple Queue Service (Amazon SQS) is a fully managed message queuing service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications. It allows secure, reliable communication between software components by storing messages in queues, offers at-least-once delivery with multiple redundancy across availability zones, and supports standard or FIFO queues to accommodate different messaging patterns.
Frequently replaced when teams want private deployments and lower TCO.
Continuous ingestion of high-volume events (e.g., clickstreams, sensor data) where consumers process data in near real-time.
Distributing background jobs or batch tasks to worker processes, enabling reliable retry and load distribution.
Implementing loosely coupled request-reply interactions where the caller does not block while waiting for a response.
Collecting logs from multiple services into a central stream for indexing, analysis, or alerting.
Temporarily storing data between pipeline stages to smooth spikes and provide back-pressure handling.
What is the difference between a message broker and a queue?
A message broker is a middleware that routes messages between producers and consumers, often supporting multiple patterns like publish/subscribe. A queue is a specific point-to-point construct where messages are stored until a single consumer retrieves them.
When should I use publish/subscribe instead of point-to-point queues?
Publish/subscribe is ideal when multiple independent services need to react to the same event, such as broadcasting updates. Point-to-point queues are better for work distribution where each message should be processed by only one consumer.
How do open-source brokers ensure message durability?
Durability is typically achieved by writing messages to disk, replicating them across multiple nodes, and using commit logs. Configurable retention policies let you balance storage cost against data loss risk.
What factors affect the scalability of a broker cluster?
Key factors include the ability to add nodes (horizontal scaling), partitioning strategy, network bandwidth, and the overhead of replication. Some systems also require careful tuning of producer/consumer batch sizes.
Can these open-source brokers be used with managed cloud services?
Yes. Many cloud providers offer managed versions of Kafka, RabbitMQ, and others, or you can run the open-source binaries on virtual machines or containers within the cloud.
How should I monitor and troubleshoot message flow?
Monitor queue depth, consumer lag, error rates, and throughput via built-in metrics or external tools like Prometheus and Grafana. Logs and dead-letter queues help identify problematic messages.