If we agree on the principle we can find a better way but currently yeah :)
I would not call that a public api though in this current state.

As I said I did multiple attempts and in the end I mostly gave up on having something nice and sexy and just got something working, I made an attempt with callbacks which provided a better api but the problem is that you can do anything in the callback and slow down/crash celluloid dispatching while using this simple Queue approach the consumer can do anything it wants with it without affecting the dispatching.

I am open to suggestions if you have another idea.