Return-Path: Delivered-To: apmail-activemq-camel-user-archive@locus.apache.org Received: (qmail 87849 invoked from network); 30 Jan 2008 18:52:51 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Jan 2008 18:52:51 -0000 Received: (qmail 66831 invoked by uid 500); 30 Jan 2008 18:52:42 -0000 Delivered-To: apmail-activemq-camel-user-archive@activemq.apache.org Received: (qmail 66761 invoked by uid 500); 30 Jan 2008 18:52:42 -0000 Mailing-List: contact camel-user-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: camel-user@activemq.apache.org Delivered-To: mailing list camel-user@activemq.apache.org Received: (qmail 66752 invoked by uid 99); 30 Jan 2008 18:52:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jan 2008 10:52:42 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of roman.kalukiewicz@gmail.com designates 72.14.204.234 as permitted sender) Received: from [72.14.204.234] (HELO qb-out-0506.google.com) (72.14.204.234) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jan 2008 18:52:15 +0000 Received: by qb-out-0506.google.com with SMTP id c8so368948qbc.4 for ; Wed, 30 Jan 2008 10:52:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=lsjYTQybMZpg2cjbEpRFqmZpoAqjF/hshUQEFIIr5H8=; b=mH/na/E+ojj6UfUrX1v9dUOg8/47JieaHJNkMP8KSUikYka8r9TVqaP4Nm64mpFLSiD0n/UE6mjTzrukcUn0wm2aw9TgU4WA0zaPVAdFKBhPtIQcma9yzvTjxT3xhhvgyiyjuLP/MOma76LqYyOXawHPEXyxTgam9X8tziSaaao= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=K0WFnV2p2AlbPeOgL6eL3VnRIj7C93nefkpzs4v6BShIC5q40p7kf9qf9sfhS7YiF/jOTcOJrclfX9kJb83s68Ld48FA2WI0EcCf4YcW07A+xpDSkEr95JDipzknnk0LSFsje7FlqU7Klk6+M6cDmPcs9SI8SN8nsgjcdac5mIA= Received: by 10.142.245.10 with SMTP id s10mr564779wfh.186.1201719140381; Wed, 30 Jan 2008 10:52:20 -0800 (PST) Received: by 10.142.143.12 with HTTP; Wed, 30 Jan 2008 10:52:20 -0800 (PST) Message-ID: Date: Wed, 30 Jan 2008 19:52:20 +0100 From: "Roman Kalukiewicz" To: camel-user@activemq.apache.org Subject: Re: in/out/fault messages discussion In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1D64AF3E-A69A-44DE-9DAB-F0EB238A8326@intalgent.com> X-Virus-Checked: Checked by ClamAV on apache.org > > As I understand it the whole reason Exchange exists is to model the > > correlation between the in/out/fault messages, not their format. > > Maybe the abstraction is too leaky to hide, but I thought that's > > what Camel was trying to do. If you remove the distinction from > > Camel's API, it then becomes the responsibility of the players > > involved in the to keep track of the correlation. That, to me > > anyway, sounds like it makes life more difficult for users of Camel, > > or at the least, anyone implementing a Camel component. > > > > As Hadrian said, I think a number of your concerns can be address by > > revisiting Pipeline and a few of the core routing mechanisms. The > > in/out/fault distinction may not be clear or consistent throughout > > Camel, and rmaking it so is not a simple task, > I don't think it's a major effort either. For the most part Camel > *does* things right. Maybe I should state it clearly -- I really believe that Cames *does* things right, and it is not a huge effort to correct things that are not working right in current model. On the other hand the whole discussion starts with my feeling that in Camel we have some flow, and the message that flows through the flow. _One message that simply flows through some number of steps_. This is the simplest possible model of the flow in Camel. The basic question is if this simple model is strong enough to describe everything we need. I believe, that it is, and I was trying to prove it with the patch I shown. > > For example, as you point out, the in/out distinction is clunky to > > processors that only want to modify a message or pass it along. The > > convention or shortcut that's come about for these cases is merely > > modifying/using the In message, and having Pipeline forward it > > along. Perhaps some benefit could come from further utilizing > > ExchangePattern, or generating better default wrappers from the DSL. Current model (even if it requires some fixes) with in/out/fault works and maybe it is even easier for someone using SOAP or JBI, but (I think) Camel shouldn't try to model SOAP, JBI, Java or something else. It is about patterns, and messages. If I think about messages flowing through my flow, what is the difference between body(), outBody() and faultBody()? It is the body of the message, period. Maybe it is my problem that I see those flows, as flow of a message? My perception is like "read the message from here, then process it this and this and that way and send it somewhere else". I think about it as a one message. Maybe majority of people see it as a set of exchanges between different processors or in some other way? If this is my perception of those flows, then I would like to see it in DSL and in APIs, because Camel tries very hard to match my perception of the flow. This is the biggest strength of Camel. Just by the way I think, that it could solve some of our problems, but it is not the core of my concerns. BTW Thanks for all your $0.02 ;) Roman