Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 329792 - Simple Queue Service
Summary: Simple Queue Service
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: gyrex (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Gunnar Wagenknecht CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 329782
  Show dependency tree
 
Reported: 2010-11-09 09:32 EST by Gunnar Wagenknecht CLA
Modified: 2018-03-19 11:59 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gunnar Wagenknecht CLA 2010-11-09 09:32:44 EST
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.
Comment 1 Gunnar Wagenknecht CLA 2010-11-09 09:33:57 EST
We should investigate RabbitMQ as a default implementation.
Comment 2 Gunnar Wagenknecht CLA 2011-01-15 15:18:11 EST
Another possible default implementation could be Kestrel (https://github.com/robey/kestrel).
Comment 3 Gunnar Wagenknecht CLA 2011-02-13 16:07:21 EST
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.
Comment 4 Gunnar Wagenknecht CLA 2011-02-14 05:08:05 EST
Peter, the last paragraph of the last comment is for you.
Comment 5 Gunnar Wagenknecht CLA 2011-04-14 15:07:54 EDT
Test suite complete.
Comment 6 Gunnar Wagenknecht CLA 2011-04-14 15:08:27 EDT
Fixed.