I guess if this would help the ActiveMQ developer by reducing code debt and
making maintenance simpler, it's a Good Thing. Pluggable architectures have
a certain amount of overhead, though.

I don't want to discourage interesting and new areas of architecture. The
original message said the pluggable interface would be "above" the broker,
not within it. That's what didn't make a lot of sense to me. If it's above
it, then the obvious plugin interface would be the existing wire protocols:
JMS via OpenWire or STOMP. If it's within the broker, where are the plugin
interface points? Is that what would need to be rearchitected, and is this
a significant amount of effort? I don't know enough of ActiveMQ's internals
to know where the boundaries are for clean separation.

On Wed, Apr 8, 2015, 12:15 AM James Carman <ja...@carmanconsulting.com>
wrote:

> Pluggable *within* ActiveMQ.  That is what doesn't exist.  The idea is that
> the underlying engine could be optimized on a case-by-case basis.  For
> instance, you may be able to streamline the implementation of a broker that
> doesn't require persistence at all.  Right now, we have one implementation
> that tries to be the end-all-be-all solution for everything.
>
> On Wednesday, April 8, 2015, Jim Gomes <jgo...@apache.org> wrote:
>
> > I'm with Guillaume on this. From the NMS perspective, the broker already
> is
> > a plugin implementation. I don't understand why it would need to go any
> > deeper than that. NMS can talk to TIBCO or ActiveMQ brokers via one
> common
> > API. The idea of pluggable brokers already exists.
> >
> > On Mon, Mar 30, 2015, 8:32 AM Guillaume Nodet <gno...@apache.org
> > <javascript:;>> wrote:
> >
> > > Fwiw, the whole broker implementation looks like an implementation
> detail
> > > from a user point of view that uses the JMS spec... ;-)
> > >
> > > 2015-03-30 17:12 GMT+02:00 Hadrian Zbarcea <hzbar...@gmail.com
> > <javascript:;>>:
> > >
> > > > +1.
> > > >
> > > > The blocking today it merely an implementation detail than can be
> > > > addressed.
> > > >
> > > > Hadrian
> > > >
> > > >
> > > > On 03/30/2015 09:23 AM, James Carman wrote:
> > > >
> > > >> All,
> > > >>
> > > >> With all the talk over the last week or so regarding the "Broker
> > > >> Wars", especially after reading Rob Davies' email about how the
> broker
> > > >> has been tweaked through the years to emphasize different aspects
> > > >> (long-term storage for instance), it occurred to me that we might be
> > > >> able to move past all this craziness by providing an abstraction
> layer
> > > >> above the broker and try to make them "pluggable."
> > > >>
> > > >> If there really are situations where the broker needs to focus on
> one
> > > >> particular aspect of message delivery, that sounds to me like the
> > > >> "strategy" pattern.  If a broker can be written in such a way that
> it
> > > >> is allowed to focus on certain aspects and maybe ignore or
> completely
> > > >> forego others, then it would seem to me that the code could be made
> > > >> much more straight-forward, because it doesn't have to try to be the
> > > >> "swiss army knife", solving everyone's problems at one time.
> > > >>
> > > >> Of course, this may be just a pipe dream and there's no way to do it
> > > >> (admittedly I'm not terribly familiar with the code), but I thought
> > > >> I'd throw it out there as a possible approach.  I mean, we do this
> > > >> sort of thing already with the persistence providers, so maybe
> there's
> > > >> an opportunity here as well.
> > > >>
> > > >> Thoughts?
> > > >>
> > > >> James
> > > >>
> > > >>
> > >
> >
>

Reply via email to