Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request: include info about when/why to choose disque vs. streams #6

Open
Deimos opened this issue Dec 20, 2019 · 2 comments
Open

Request: include info about when/why to choose disque vs. streams #6

Deimos opened this issue Dec 20, 2019 · 2 comments

Comments

@Deimos
Copy link

Deimos commented Dec 20, 2019

With streams being added in Redis 5, it seems like they include support for a lot of the same capabilities as disque is offering, especially through consumer groups. It would be nice to have a section in the documentation explaining what cases or needs might make you want to choose disque over streams, or vice versa.

@zachmccormick
Copy link

Hmm... these are fundamentally different things, though.

Disque is a distributed message (job) broker that aims for exactly-once execution of jobs but can be configured for at-least-once and at-most-once execution guarantees. It also requires clustering + supports seamless addition/removal of nodes, replication factors across those nodes, etc.

Streams is a data type that roughly emulates Kafka's multi-consumer message broker model. Instead of aiming for exactly-once execution of jobs, Streams (and similarly Kafka), exposes a "stream" of messages that can be read by multiple consumers and may persist long after the first (or second or third) consumer consumes the message. Streams doesn't require clustering or anything since it's just a data type.

@jheld
Copy link

jheld commented Feb 17, 2020

With consumer groups though it seems that it becomes very close (semantically equivalent) to a message queue. And since streams are more similar to this world than are general redis lists, it appears to be a good mapping, with the requirement of groups in place.

Is this incorrect?

As far as streams vs disque, doesn't mean one is better or worse so much as different systems (and data types at that), which can be chosen based on requirements. Disque sounds very cool! But streams might be easier to go to production whilst disque used in r & d and then production.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants