It was a good choice back then, since enums are a simple way of building singletons.
Meanwhile, we've much improved out EventBus implementation and it's now based on injectable objects. It supports:
- an event queue builder to create queues with different types and behaviors (e.g. replaying vs non-replaying)
- queue types are now type safe (that was the biggest problem with using an enum)
- test event bus that allows you to easily assert that events are raised in unit tests, or to publish fake events
I would like to contribute this back to RxAndroid once the project breaks out of core. It's also matured in our app over the past 6 months so I feel comfortable about the value it adds (it also closes the gap between background objects like Android services and foreground objects like Activities, but we use for a lot more, to raise tracking events for instance.)