Git Product home page Git Product logo

siberite's Issues

Fanout queue semantics not correct

In the documentation here, fanout queue usage is described as:

Siberite allows you to insert new message into multiple queues at once by using the following syntax set <queue>+<another_queue>+<third_queue> ...

However, in the Kestrel documentation the intended behaviour (and what I expected) is:

If a queue name has a + in it (like "orders+audit"), it's treated as a fanout queue, using the format +. These queues belong to a parent queue -- in this example, the "orders" queue. Every item written into a parent queue will also be written into each of its children.

Which is to say that the "+" syntax is used to make is so the child queue receives all SETs that the parent queue receives after that. This is what I need since I wanted a producer to create a single queue and then the consumers to be able to create independent queues that follow the main producer queue. With this implementation, it would mean the producer has to know about every consumer and send each of them updates, which is rather inconvenient.

I understand that such a change may be breaking. Do you know of any uses that depend on the "broadcast" behaviour?

If this won't be fixed to be consistent with the Kestrel protocol, would you consider adding syntax for this, perhaps like?:

FOLLOW <child> <parent>

Or perhaps, would you consider making use of another unlikely filename character so that the syntax below complies with the use of "+" in Kestrel?:

SET parent>child 0 0 0

Authentication

Do you have plans to add authentication to Siberite? Or if not, do you know of any proxies that might be suitable for the memcache protocol that I could use that might provide it?

Are multiple consumers supported?

Hi, I am very new to queues and am going to use siberite for a project. While now one consumer will be sufficient, there might be need to add multiple consumers.

Your TODO has: Add multiple consumers get queue_name:consumer_name/open

Does this mean now only one consumer is supported? If I connect two consumers what is going to happen.

server errors when connecting from siberite-ruby client

when connecting from ruby and issuing simple sets / gets in a loop, i see lots of errors in the server log:

2017/01/20 17:59:25 [::1]:49381 ERROR Unknown command
2017/01/20 17:59:25 [::1]:49392 ERROR Unknown command
2017/01/20 17:59:25 [::1]:49394 ERROR Unknown command
2017/01/20 17:59:25 [::1]:49398 ERROR Unknown command

(probably a client issue, but the other repo doesn't have issues enabled.)

Are fanout supported?

Are fanout queues supported?
We are heavy users of kestrel and this project looks very interesting, but we use a lot of fanout queues.

How to do replication?

For fail-over and horizontal scalability, how to do replication? As I see it's not supported in the backed goleveldb?

A Siberite Specific Client

Do you already have a Go siberite client, or should I start working on one?

While the memcache clients are good enough, with the addition of multiple consumer groups and the subcommands, I think siberite could use a custom client.

Also I find the existing Go Memcache clients are not implementing all the commands, specifically, stats and others.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.