On Sun, Mar 10, 2019 at 10:41 PM Kasun Vithanage <alanka...@gmail.com> wrote:
>
> Hi all,
>
> I've experience implementing event buses in Java.
> In Java, I used a singleton where I can register callbacks to methods and 
> fire event from a publisher(maybe from another thread) and propagate it to 
> subscribers.
>
> In Go what would be the best pattern to implement a pub/sub event bus?
> Are channels are a better choice than using callbacks in this scenario(one to 
> many event propagation)?

Are you talking about the event listeners in Java where all listeners
are called synchronously? You can't use channels for something like
this, and a list of callbacks would be the simplest solution. But you
mentioned you might be calling listeners in another thread. Do you
need a synchronous call where publish() will make sure all subscribers
get the event? If so, maybe you can use a mix of channels and
callbacks. You can keep a list of callbacks for listeners in the same
goroutine, and a list of channels for listeners in other goroutines,
and call/write to elements of both list.

> Or callbacks are better for this?
>
> (I need to propagate events only to subscribers of the topic)
>
> Regards,
> Kasun
>
> --
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to