Return-Path: X-Original-To: apmail-activemq-dev-archive@www.apache.org Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 56E0B17DA9 for ; Wed, 8 Apr 2015 13:56:17 +0000 (UTC) Received: (qmail 80473 invoked by uid 500); 8 Apr 2015 13:56:11 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 80415 invoked by uid 500); 8 Apr 2015 13:56:10 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 80403 invoked by uid 99); 8 Apr 2015 13:56:10 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Apr 2015 13:56:10 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of e.semog@gmail.com designates 209.85.214.172 as permitted sender) Received: from [209.85.214.172] (HELO mail-ob0-f172.google.com) (209.85.214.172) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Apr 2015 13:55:45 +0000 Received: by obbfy7 with SMTP id fy7so138607045obb.2 for ; Wed, 08 Apr 2015 06:54:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-type; bh=SCMpiNeX3S/429Aul+f9sQXO/gk0KJ7GbroahGpYh0w=; b=VRuWgOqx8x3RjEsLC6A3I/er/IlJFtRrHx1//YGTPWhSIzVM9VlBVPjPzp4PoBMwXC HA6EUWXUtFYLLxIs6pfYkYuQ2NcHGUAI2TyanVXoQhmtFYpuW80ENFYIHByogAJ3PN6w 0GLrELWoE3A+c1I0i6AQqQIU9Zi5SA95tqy/ZYDTV2ChCqDY7MJXLMjneJO4Rb/TnV8F bZoNaONlulanPsvxx/us5yuqx1jsXHIwb5iYEJvT3WPXE0DIaxqHvEjH4G42h4VVeMWh M8vgJEDezySx/DHoGyXbENKDLsecO8/beTf0cCtmUSGPUjLttQo6ww0KXoqSZJEKp0Ha lQ/g== X-Received: by 10.182.105.66 with SMTP id gk2mr32105276obb.76.1428501239793; Wed, 08 Apr 2015 06:53:59 -0700 (PDT) MIME-Version: 1.0 References: <551967FA.9000409@gmail.com> In-Reply-To: From: Jim Gomes Date: Wed, 08 Apr 2015 13:53:59 +0000 Message-ID: Subject: Re: [PROPOSAL] Pluggable Brokers... To: "dev@activemq.apache.org" Content-Type: multipart/alternative; boundary=e89a8ff25134f59039051336dc9b X-Virus-Checked: Checked by ClamAV on apache.org --e89a8ff25134f59039051336dc9b Content-Type: text/plain; charset=ISO-8859-1 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 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 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 > > 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 > >: > > > > > > > +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 > > > >> > > > >> > > > > > > --e89a8ff25134f59039051336dc9b--