Apr 12, 2020
Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design. | It is a portable, event-driven runtime that makes it easy for developers to build resilient, stateless and stateful microservices that run on the cloud and edge and embraces the diversity of languages and developer frameworks. |
Written at LinkedIn in Scala;Used by LinkedIn to offload processing of all page and other views;Defaults to using persistence, uses OS disk cache for hot data (has higher throughput then any of the above having persistence enabled);Supports both on-line as off-line processing | Event-driven Pub-Sub system with pluggable providers and at-least-once semantics;
Input and Output bindings with pluggable providers;
State management with pluggable data stores;
Consistent service-to-service discovery and invocation;
Opt-in stateful models: Strong/Eventual consistency, First-write/Last-write wins;
Cross platform Virtual Actors;
Rate limiting;
Built-in distributed tracing using Open Telemetry;
Runs natively on Kubernetes using a dedicated Operator and CRDs;
Supports all programming languages via HTTP and gRPC;
Multi-Cloud, open components (bindings, pub-sub, state) from Azure, AWS, GCP;
Runs anywhere - as a process or containerized;
Lightweight (58MB binary, 4MB physical memory);
Runs as a sidecar - removes the need for special SDKs or libraries;
Dedicated CLI - developer friendly experience with easy debugging;
Clients for Java, Dotnet, Go, Javascript and Python |
Statistics | |
GitHub Stars 31.2K | GitHub Stars 25.2K |
GitHub Forks 14.8K | GitHub Forks 2.0K |
Stacks 24.2K | Stacks 96 |
Followers 22.3K | Followers 336 |
Votes 607 | Votes 9 |
Pros & Cons | |
Pros
Cons
| Pros
Cons
|
Integrations | |
| No integrations available | |

RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.

Transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use.

NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day. It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. See features & guarantees.

Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License.

The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.

An easy to use, powerful, and reliable system to process and distribute data. It supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic.

Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. Istio's control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes, Mesos, etc.

Gearman allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events.

Highly scalable and effortless data streaming platform. Made to enable developers and data teams to collaborate and build real-time and streaming apps fast.