IsaacLevon
IsaacLevon

Reputation: 2590

Caveats for using Guava's EventBus

From the docs

It is not a general-purpose publish-subscribe system, nor is it intended for interprocess communication

What do they mean by saying it's not a general-purpose publish-subscribe system?

Upvotes: 4

Views: 540

Answers (2)

Grzegorz Rożniecki
Grzegorz Rożniecki

Reputation: 28055

It's better explained in the bottom of the EventBusExplained page:

Why can't I do <magic thing> with EventBus?

EventBus is designed to deal with a large class of use cases really, really well. We prefer hitting the nail on the head for most use cases to doing decently on all use cases.

Additionally, making EventBus extensible -- and making it useful and productive to extend, while still allowing ourselves to make additions to the core EventBus API that don't conflict with any of your extensions -- is an extremely difficult problem.

If you really, really need magic thing X, that EventBus can't currently provide, you should file an issue, and then design your own alternative.

(Emphasis mine.)

Compare EventBus to Kafka for example -- the latter is much more extensible but also more complex.

Upvotes: 1

Eugene
Eugene

Reputation: 121088

As far as I understand this is within a JVM only, publish/subscribe is usually between processes residing in potentially different places: like one JVM talking to another, suppose one Spring application publishing events that are to be consumed by another Spring application, residing in entirely different places.

Upvotes: 2

Related Questions