Sunday, December 16, 2007

Apache ActiveMQ 5.0 Released!!!

It's been a while coming - but version 5.0 of the Apache ActiveMQ message broker is now available to download.

Perhaps the biggest single change is the use of cursors to page messages from disk or store into the broker - which have taken a lot of time to bed in. This new feature even had an impact on the default message store - we had to write a new one!!  

To improve flexibility and to increase the scope on integration cases, Apache ActiveMQ 5.0 also supports Enterprise Integration Patterns via Apache Camel.


You can also get a fully tested production ready version, from Iona.


Wednesday, December 12, 2007

Erlang Server For Stomp


So Jeff Xiong has just anounced the erlstomp  project - an  Erlang broker that uses the stomp protocol. Stomp is a simple text oriented wire format for messaging - which is really starting to get a lot of traction because of its so easy to implement new clients with. 
Existing clients include:
C, C++, C#, Java, Delphi, Flash, Ruby, Smalltalk, Perl, PHP etc.

This brings the number of stomp supporting brokers to 5 (including  ActiveMQ)!!

Friday, August 17, 2007

Great Open Source Enterprise Integration

James just posted a great summary of upcoming features in the Apache Camel 1.1 on his blog Camel is a fantastic integration framework - and its now been embedded in ActiveMQ 5.0 (released real soon - honest).

We now have available from Apache the four core foundation stones for Service Oriented integration:
  1. Messaging
  2. Mediation
  3. Services Framework
  4. Standard based integration container - ESB

Wednesday, May 23, 2007

Bad, Bad Journalism


Typically bad dis of JBI 1.0 - quote from an unnamed source: "JBI 1.0 was not ready for prime time; it focused on vendor needs and not the user, and has been a miserable failure." - yeah right. A miserable failure for some vendors.

Some open source JBI 1.0 implementations continue to be the most widely used, standard based esbs on the planet!


BTW - if you want an idea of what JBI 2.0 will probably look like - check out the CAMEL!

Tuesday, May 08, 2007

What's that coming over the hill ? - Apache Camel!

Apache Camel a sub project of Apache ActiveMQ - is a declarative rules based framework for integration based on enterprise integration patterns - or EIP. Camel is designed to be very easy to use, and suports generics, automatic type conversion and already has a large number of integration components.

So why Camel ? We saw a real need for an easy to use, easily embedded integration package that is Apache licenced and really complementary to ServiceMix.

Camel version 1 should be ready to ship tomorrow - once James recovers from his hangover ;)

Saturday, February 03, 2007

Apache ActiveMQ: Version 5.0 Broker Changes

ActiveMQ has now graduated out of the incubator, which is going to enable us to get on track on releasing more often.

We are currently going through a stage of consolidation of features to ensure we have a solid foundation to build on going forward, and these features will be available on 5.0 - the first milestone release will be in the next couple of weeks.

New features will include:

New dispatch model for Persistent messages.

Prior releases to 5.0 have kept references for all the messages that could be dispatched to an active Durable Topic Consumer or a Queue in memory. Whilst a reference itself was not large, it did impose a limit on the maximum number of messages that could be pending delivery.

A typical approach for messaging systems dispatching persistent messages is to pull them in batches from long term storage when a client is ready to consume them, using a cursor to maintain the next to dispatch position. This is a robust and very scalable approach, but not the most performant for cases when the consumer(s) can keep up with the producer(s) of messages.

Hence ActiveMQ 5.0 has a hybrid approach, allowing messages to pass from producer to consumer directly (after the messages have been persisted) but switches back to using cursors if the consumer(s) fall behind.

New Default Message Store

Hiram and I have been working on different storage options for a while now, but we've finally settled on an implementation that uses the best bits of the journal and Kaha to provide a storming messaging persistent engine, which scares the pants of me - its sooo fast!

Slow Consumers


Version 5.0 will a combination of outstanding messages and memory consumption to decide when a consumer can be sent more messages (message prefetch). This will allow us to determine when consumption is slow, regardless of the message size.

Spooling to disk for non-persistent slow consumers has also been optionally introduced. There is some more tuning thats required to be done to get this right, but should be ready this week.


Other features that will be incorporated in the 5.x release:

* automatic recovery for the 'shared nothing' master/slave (about to start on this)
* bi-directional network bridges