Community
Participate
Working Groups
We need a queue service in Gyrex which allows to create queues, submit messages to and retrieve messages from them. Together The service must not define any strong guarantees but must allow to cover implementations based on Amazon SQS, OpenStack, RabbitMQ, etc. Thus, the API might be very rich but offer enough feature in order to support the following thing: * declare queue Ensures that a queue exists (creates it if necessary) * publish message Publishes a message (set of bytes) * message consumer callback Allows to add message consumers (callback interface that will receive one message at a time; actually returns a message consumer registration handle which can be used to remove a consumer callback) A few notes: Queue management is left to the actual queue service implementation which should likely expose it's own queue management interface. No guarantees are given regarding message delivery/ordering other than the guarantees given by the underlying implementations. The queue service is *not* a distributed event bus.
We should investigate RabbitMQ as a default implementation.
Another possible default implementation could be Kestrel (https://github.com/robey/kestrel).
I went ahead and implemented a simple queue service based on ZooKeeper. We already have it and it's actually one of the example ZooKeeper usages. Committed to HEAD. However, I'll leave this bug open till the test suite is complete. BTW, we now also have a dedicated server test application. This allows to run JUnit test entirely on a full server environment. Thus, there is no longer a need for re-initializing an environment manuall in test cases.
Peter, the last paragraph of the last comment is for you.
Test suite complete.
Fixed.