[rabbitmq-discuss] ANN New project QDB: Persistent Message Queues With Replay

Tom Anderson tom.anderson at timgroup.com
Thu Aug 1 13:00:37 BST 2013


On 01/08/13 11:44, David Tinker wrote:
> QDB provides persistent message queues with the ability to efficiently
> replay old messages by timestamp or id. It can push messages from its
> queues directly to RabbitMQ and has simple REST interface.
>
> http://qdb.io/

Interesting. Thanks!

Can you feed it from RabbitMQ too? If not, any plans to make that 
possible? A replayable recent history of certain queues could be 
insanely useful for us. If not, it looks like it wouldn't be that hard 
for us to add if we wanted it.

A few minor remarks:

- "QDB depends on two libraries that are not yet on Maven central ... 
These need to be built and installed in your local Maven repository 
before building QDB." - have you considered putting artifacts for these 
up in a non-Central repository? I do that via a repo hosted on my 
Bitbucket site - see https://bitbucket.org/twic/twic.bitbucket.org/src 
and https://bitbucket.org/twic/twic.bitbucket.org/src/default/release.sh 
for the script that updates it - and find it fairly easy. I think this 
is even easier on GitHub.

- Building and installing locally is rendered less than entirely smooth 
by (a) the fact that both projects use the signing plugin, which means i 
would have to set up GPG etc just to install locally (i commented out 
the signing declarations instead), (b) qdb-kvstore refers to a repo with 
url "/Users/david/.m2/repository", (c) qdb-kvstore depends on version 
0.4.0-SNAPSHOT of qdb-buffer, but if you check out and build qdb-buffer, 
you make version 0.4.1-SNAPSHOT.

- The qdb-server build at revision c5c7ac3b7a11 has one failing test, 
because this:

     def "Format timestamp works"() {
         Date d = new 
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse("2013-06-16T21:04:32.123+0200")
         String s = DateTimeParser.INSTANCE.formatTimestamp(d)

         expect:
         s == "2013-06-16T21:04:32.123+0200"
     }

Won't pass if you don't live in South Africa, or somewhere else with a 
+0200 timezone.

And some handwaving:

- If you ever fancy using a different storage engine, you might be 
interested in http://www.mapdb.org/ . Not sure if it has the event 
notification, though, nor if its performance characteristics are really 
what you need.

- For qdb-buffer, it might be helpful to write a comparison between what 
seems like your main use case (buffering messages heading towards 
RabbitMQ to protect against RabbitMQ doing down) and running a local 
RabbitMQ on every box as a first hop.

tom

-- 

Tom Anderson | Developer | +44 20 7826 4312 | timgroup.com 
<http://timgroup.com/>

STATEMENT OF CONFIDENTIALITY: The information contained in this 
electronic message and any attachments to this message are intended for 
the exclusive use of the addressee(s) and may contain confidential or 
privileged information. If you are not the intended recipient, please 
notify Tom Anderson at TIM Group at tom.anderson at timgroup.com and 
destroy all copies of this message and any attachments.

TIM Group is the trading name for YouDevise Limited. YouDevise Limited 
is registered in England, No. 3331176. Registered office: 3 Copthall 
Avenue, London, EC2R 7BH.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130801/0d40e7f7/attachment.htm>


More information about the rabbitmq-discuss mailing list