{"comment":{"created_at":"2011-10-18T05:02:06Z","body":"* I agree about the need for a bare-metal API and that the programmer is responsible for not blocking the driver. That would also be the reason why I thought it made sense to register the same process for multiple subscriptions. Especially if we assume the common case of 1 Eredis client. The programmer should just be warned about not blocking the callbacks (or starting multiple Eredis clients).\r\n\r\n* About the flow-control: I believe you mean that it is better to prevent overload of the user-processes by implementing flow control outside the Erlang messageboxes and moving it to the system (by letting the TCP buffers fill up)? Though this is indeed possible, I am not sure if the overhead and complexity are worth it. Eredis would block while each user process is processing. If we use async-method on the otherhand, the Eredis client is just routing data as fast as possible.\r\n\r\n* Perhaps there is a flexible middle ground?\r\n * each user process can use either a dedicated Eredis client or use a shared (pool) Eredis client\r\n * the user can use callbacks (which are executed in the Eredis client process context); If they are blocking, this would automatically result in flow-control in the Eredis client. The user should probably use a dedicated Eredis client in this case.\r\n * the user can also decide to use non-blocking async notifications (implemented by having a default callback function call gen_server:cast() for example). Disadvantage is the risk of overloading, but advantages are that you can share the connection to Redis and it would be simple to use: simply a handle_cast()-like call.","updated_at":"2011-10-18T05:02:06Z","url":"https://api.github.com/repos/wooga/eredis/issues/comments/2438040","id":2438040,"user":{"avatar_url":"https://secure.gravatar.com/avatar/872d600cf9edee6ec4680b5407a52638?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"872d600cf9edee6ec4680b5407a52638","url":"https://api.github.com/users/thijsterlouw","id":126053,"login":"thijsterlouw"}},"action":"created","issue":{"number":13,"created_at":"2011-10-17T05:17:26Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"I believe eredis does not support Redis' pubsub ( http://redis.io/topics/pubsub ) \r\nIs someone already working on this, or is there interest in adding this feature?","comments":4,"title":"Support for pubsub","updated_at":"2011-10-18T05:02:06Z","url":"https://api.github.com/repos/wooga/eredis/issues/13","id":1925123,"assignee":null,"milestone":null,"closed_at":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/872d600cf9edee6ec4680b5407a52638?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"872d600cf9edee6ec4680b5407a52638","url":"https://api.github.com/users/thijsterlouw","id":126053,"login":"thijsterlouw"},"html_url":"https://github.com/wooga/eredis/issues/13","labels":[],"state":"open"},"legacy":{"issue_id":1925123,"comment_id":2438040}}