Return-Path: X-Original-To: apmail-camel-dev-archive@www.apache.org Delivered-To: apmail-camel-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 D7298D0BF for ; Wed, 24 Oct 2012 01:44:00 +0000 (UTC) Received: (qmail 16723 invoked by uid 500); 24 Oct 2012 01:44:00 -0000 Delivered-To: apmail-camel-dev-archive@camel.apache.org Received: (qmail 16688 invoked by uid 500); 24 Oct 2012 01:44:00 -0000 Mailing-List: contact dev-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list dev@camel.apache.org Received: (qmail 16680 invoked by uid 99); 24 Oct 2012 01:44:00 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 Oct 2012 01:44:00 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of hzbarcea@gmail.com designates 209.85.161.173 as permitted sender) Received: from [209.85.161.173] (HELO mail-gg0-f173.google.com) (209.85.161.173) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 Oct 2012 01:43:54 +0000 Received: by mail-gg0-f173.google.com with SMTP id s5so1136ggc.32 for ; Tue, 23 Oct 2012 18:43:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=08wXfhuyVxWgVKAfKd7aNGbVAhIzO5hkDPqTZYXefBw=; b=Ku7W6kQ2yBY8ofZ8GFRyWooEyXXi03MXm23OT/b+lQ9BS686BnAIqWw0RXCRg6Eqkj v/YnSNTkeg//cYlNlrzZ+ewVa4MyJ787f56wD4A0/pNMMzqHNwycpfPeDZ/Fr/+tK57L RcLbDZAtXj+ypiqMD3kkOZD7tp/2jfSnACG5q92IzOXoFK9J/mPr0r+5xjQHKcRrHW04 vaYawlulJdEEQNFqcdF34RC+NN63D2YVqj+6nnQl5qCPZxe8jPMgtEfq5KS5T0BCivpo r7/6XNPgWOR792/rGCj1oGCIXj38nb7k5rWtvY/68bOATbp8afTwuKesdA1m69MddghR DQrQ== Received: by 10.236.52.198 with SMTP id e46mr13409585yhc.57.1351043013599; Tue, 23 Oct 2012 18:43:33 -0700 (PDT) Received: from [10.40.58.207] (cpe-065-190-020-023.nc.res.rr.com. [65.190.20.23]) by mx.google.com with ESMTPS id t46sm13617559yhi.3.2012.10.23.18.43.32 (version=SSLv3 cipher=OTHER); Tue, 23 Oct 2012 18:43:32 -0700 (PDT) Message-ID: <508747C4.10008@gmail.com> Date: Tue, 23 Oct 2012 21:43:32 -0400 From: Hadrian Zbarcea User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121011 Thunderbird/16.0.1 MIME-Version: 1.0 To: dev@camel.apache.org Subject: Re: [DISCUSS] Message Store References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hi Christian, You are correct about the fact that a Message Store is missing (kinda). There are a few components that support a message store implementation of sorts, as you mentioned. You are also correct that it should be a first class citizen. Practically, an endpoint that supports a polling consumer is a message store. What is actually missing is random access via a polling consumer. A message store would then work atop any endpoint that supports random retrieval (polling). That would create the opportunity to cleanup a bit the pollEnrich implementation as well. My $0.02, Hadrian On 10/23/2012 07:18 AM, Christian Ohr wrote: > Hi everyone, > > in the past I came several times across situations that required the > one or other kind of Message Store. I noticed that in Camel this > doesn't seem to be a "first class citizen" in the sense of a primary > architectural concept, which can be applied consistently whereever > needed. > > In short, it might make sense to have a unified, generic, pluggable > Message Store (probably more of an "Exchange store") in Camel that > consolidates the different approaches and allows to similarly > parameterize persistence to various EIP patterns, and can be used > independently of EIP patterns as well. Implementations would handle > the mapping to the underlying database or file system or NoSQL or > whatever. > It seems that Spring Integration provides something corresponding > (http://static.springsource.org/spring-integration/reference/htmlsingle/#message-store). > > Message Store implementations are already used by Camel in various > places, although using different approaches : > * Stream Caching (only file system) > * AggregationRepository (used for splitters, multicasts etc., but the > interface is not specific at all to aggregation use cases) > * IdempotentRepository > > Message Store is requested for in other places: > * Reliable stream resequencing (CAMEL-949) > * Persistent Dead Letter Queue (CAMEL-4575) > > And there might be other areas (seda, bam) that might benefit as well. > Maybe generalizing the AggregationRepository is a way to go forward. > > Side note: The OeHF IPF platform (which is built on top of Camel and > partly extends it to the health care domain) has something called a > "Flow Manager" (http://www.openehealth.org/display/ipf2/Flow+management) > that is used for tracking exchanges while they are processed or after > processing is done, thereby being able to re-insert them into the > route. Not that I consider this being a shining example, but it shows > that message stores make sense outside their implicit use in EIP > processors as well. > > Looking forward to your opinions! > > regards > Christian >