<div dir="ltr">Yes, EventBus it the one I ended up with.<div>Seems pretty solid, and since Paul Robinson gave a thumbs up for the author that makes me trust it more.</div><div><br></div><div>The only problem I have is that EventBus is meant to be used in a static fasion which makes unit testing a bit harder, but not impossible...</div>
</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">Med Venlig hilsen / Best regards<br><br>Klaus Hebsgaard<br><br>Website: <a href="http://www.hebsgaard.dk" target="_blank">http://www.hebsgaard.dk</a><br>Blog: <u><a href="http://blog.khebbie.dk" target="_blank">http://blog.khebbie.dk</a></u><div>
LinkedIIn: <a href="http://www.linkedin.com/in/klaushebsgaard" target="_blank">http://www.linkedin.com/in/klaushebsgaard</a></div><div>Github: <a href="https://github.com/khebbie" target="_blank">https://github.com/khebbie</a></div>
</div></div>
<br><br><div class="gmail_quote">On Wed, Aug 20, 2014 at 1:38 PM, Stephen Best <span dir="ltr"><<a href="mailto:bestie@gmail.com" target="_blank">bestie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Klaus I think you answered your own question with "implement a simple observer pattern". Synchronous pub/sub is trivial to implement with plain old Ruby objects with this approach offering the best in terms of decoupling.<div>


<br></div><div>Applied correctly it should be very easy to later swap out your event consumers for objects that put jobs onto asynchronous queues.<div><br></div><div>Wisper seems to encourage users to have domain or ActiveRecord objects emit events which I find a bit distasteful.</div>


<div><br></div></div><div>EventBus seems like a much better option if you'd rather use a library.</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">Bestie.<br><div><br></div><div><a href="http://theaudaciouscodeexperiment.com" target="_blank">theaudaciouscodeexperiment.com</a><br>


<a href="http://github.com/bestie" target="_blank">github.com/bestie</a><br>@thebestie</div></div></div><div><div class="h5">
<br><br><div class="gmail_quote">On 20 August 2014 12:15, Klaus Hebsgaard <span dir="ltr"><<a href="mailto:klaus@hebsgaard.dk" target="_blank">klaus@hebsgaard.dk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">Thank you everyone who gave suggestions</div><div class="gmail_extra"><div><br clear="all"><div><div dir="ltr">Med Venlig hilsen / Best regards<br><br>Klaus Hebsgaard<br><br>Website: <a href="http://www.hebsgaard.dk" target="_blank">http://www.hebsgaard.dk</a><br>



Blog: <u><a href="http://blog.khebbie.dk" target="_blank">http://blog.khebbie.dk</a></u><div>LinkedIIn: <a href="http://www.linkedin.com/in/klaushebsgaard" target="_blank">http://www.linkedin.com/in/klaushebsgaard</a></div>



<div>Github: <a href="https://github.com/khebbie" target="_blank">https://github.com/khebbie</a></div></div></div>
<br><br></div><div><div><div class="gmail_quote">On Wed, Aug 20, 2014 at 12:41 PM, James Pike <span dir="ltr"><<a href="mailto:lrug@chilon.net" target="_blank">lrug@chilon.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



The awkward thing about Redis is you only get a single "watch" per TCP<br>
connection, with the exception of pub sub (which puts your connection<br>
into "subscriber mode" and limits it to only pub/sub operations). If you<br>
only want to stick to pubsub then it's cool, but then if you are tempted<br>
by other things like queues and hashes and operations to watch them,<br>
then you have to start having to spawn multiple TCP connections for each<br>
watch operation, and then writing connection pools etc. That makes me<br>
sad.<br>
<br>
RabbitMQ is nice in that you can consume all its goods with a single TCP<br>
connection.<br>
<br>
Cheers, James<br>
<div><div><br>
On Wed, Aug 20, 2014 at 11:14:12am +0100, Sleepyfox wrote:<br>
> Something that might initially sound a bit weird, but suits small apps<br>
> well, is using Redis for it's dirt simple Pub/Sub support. It's<br>
> trivially easy to use Redis as a message bus (trivially easy to use<br>
> Redis, full stop), and if you're not looking for the last word in<br>
> sophistication or scale (in which case something like RabbitMQ is<br>
> probably a better bet) it does the job.<br>
><br>
> The approach is described in the following article (about Node rather<br>
> than Ruby, but you get the picture):<br>
><br>
> Fox<br>
> --<br>
> "What does the @sleepyfox say?"<br>
><br>
><br>
> On 20 August 2014 09:23, Klaus Hebsgaard <<a href="mailto:klaus@hebsgaard.dk" target="_blank">klaus@hebsgaard.dk</a>> wrote:<br>
> > Thanks for the pointer, however there were a few points I didn't put into<br>
> > the original request:<br>
> > - I need something small, as the app is small<br>
> > - I don't mind synchronous event busses, as we don't handle anything big<br>
> > yet.<br>
> > - I would like some simplicity, so adding more processes to run on the<br>
> > server, would be too much overhead at the moment<br>
> > - We use MRI at the moment, though I can see lots of advantages to JRuby<br>
> ><br>
> ><br>
> ><br>
> > Med Venlig hilsen / Best regards<br>
> ><br>
> > Klaus Hebsgaard<br>
> ><br>
> > Website: <a href="http://www.hebsgaard.dk" target="_blank">http://www.hebsgaard.dk</a><br>
> > Blog: <a href="http://blog.khebbie.dk" target="_blank">http://blog.khebbie.dk</a><br>
> > LinkedIIn: <a href="http://www.linkedin.com/in/klaushebsgaard" target="_blank">http://www.linkedin.com/in/klaushebsgaard</a><br>
> > Github: <a href="https://github.com/khebbie" target="_blank">https://github.com/khebbie</a><br>
> ><br>
> ><br>
> > On Wed, Aug 20, 2014 at 9:38 AM, Vish Vishvanath <<a href="mailto:vish.vishvanath@gmail.com" target="_blank">vish.vishvanath@gmail.com</a>><br>
> > wrote:<br>
> >><br>
> >> Hey Klaus,<br>
> >><br>
> >> On a slightly different note, I've had very positive experiences with Ruby<br>
> >> in vert.x,  which enables excellent decoupling with its system of<br>
> >> 'verticles': independent code modules communicating via immutable primitives<br>
> >> across an event bus.<br>
> >><br>
> >> The fact that you can leverage Java and several languages in the same<br>
> >> codebase is a bonus.<br>
> >><br>
> >> Best<br>
> >><br>
> >> vv<br>
> >><br>
> >> On 20 Aug 2014, at 07:42, Klaus Hebsgaard <<a href="mailto:klaus@hebsgaard.dk" target="_blank">klaus@hebsgaard.dk</a>> wrote:<br>
> >><br>
> >> Hello<br>
> >><br>
> >> I am currently looking into decoupling my app a bit more.<br>
> >> Coming from a C# background I would like to use an Event Bus for this, so<br>
> >> that I can apply the observer pattern.<br>
> >><br>
> >> I have searched a bit around and have found:<br>
> >> <a href="https://github.com/kevinrutherford/event_bus" target="_blank">https://github.com/kevinrutherford/event_bus</a><br>
> >><br>
> >> Does anyone know this gem, is it worth using (well maintained etc)?<br>
> >> Do you know of good alternatives?<br>
> >><br>
> >> Med Venlig hilsen / Best regards<br>
> >><br>
> >> Klaus Hebsgaard<br>
> >><br>
> >> Website: <a href="http://www.hebsgaard.dk" target="_blank">http://www.hebsgaard.dk</a><br>
> >> Blog: <a href="http://blog.khebbie.dk" target="_blank">http://blog.khebbie.dk</a><br>
> >> LinkedIIn: <a href="http://www.linkedin.com/in/klaushebsgaard" target="_blank">http://www.linkedin.com/in/klaushebsgaard</a><br>
> >> Github: <a href="https://github.com/khebbie" target="_blank">https://github.com/khebbie</a><br>
> >><br>
> >> _______________________________________________<br>
> >> Chat mailing list<br>
> >> <a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
> >> Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
> >> Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
> >> List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
> ><br>
> ><br>
> ><br>
> > _______________________________________________<br>
> > Chat mailing list<br>
> > <a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
> > Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
> > Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
> > List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
> ><br>
> _______________________________________________<br>
> Chat mailing list<br>
> <a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
> Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
> Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
> List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
<br>
</div></div><span><font color="#888888">--<br>
<a href="http://chilon.net" target="_blank">http://chilon.net</a><br>
</font></span></blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
<br></blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>