[ 
https://issues.apache.org/jira/browse/CAMEL-3476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010292#comment-13010292
 ] 

Christian Müller commented on CAMEL-3476:
-----------------------------------------

It looks like I was too impatient... ;-)

To clarify the naming:
- SQS producer: A class which extends the DefaultProducer to implement the 
event driven consumer enterprise integration pattern. Used to consume message 
exchanges and send it to the Amazon SQS service (SendMessageRequest).
- SQS consumer: A class which extends the ScheduledPollConsumer to poll 
messages from an Amazon SQS service (ReceiveMessageRequest) and create message 
exchanges from this.
- SNS producer: A class which extends the DefaultProducer to implement the 
event driven consumer enterprise integration pattern. Used to consume message 
exchanges and send it to the Amazon SNS service (PublishRequest).
- SNS consumer (not exists yet): A class which extends the DefaultConsumer (or 
ScheduledPollConsumer) to receive (or poll) messages from an Amazon SQS service 
and create message exchanges from this.

Because the AmazonSNSClient doesn't offer a readXXX(), receiveXXX(), ... method 
to receive messages, I think a SNS consumer make no sense. Creating a 
subscription to an Amazon SNS service/topic has nothing to do with with 
consuming messages from this endpoint and so it's not a SNS consumer.

The subscription can be made to an Amazon SQS queue, to an HTTP(S) endpoint or 
to an e-Mail. For *all* this protocols/endpoints, Camel already offer consumers.

The only thing Camel at present do not support is the subscription to an Amazon 
SNS service/topic. If we really want/need this, I think the SNS producer should 
support this. He can do this in the doStart() method and not each time a 
message exchange receive (creating the SNS topic, creating the SQS queue, 
making the subscription). And in your second route you use the SQS consumer to 
consume the messages.

As you say, the timer and quartz component offer *similar* functionality. But 
if the SNS consumer consumes messages from an Amazob SQS queue, the SNS 
consumer and SQS consumer offer the *same* functionality. This makes no sense.

I don't understand your last paragraph. I think you cannot "hide" or abstract 
the subscription. The user which receives the messages, send to an Amazon SNS 
service/topic has to know, where the messages are forwarded to.

And I think the subscription is not so easy as you think. In my opinion, the 
value of this Amazon SNS service is to broadcast one message to multiple 
recipients (and not to work around a firewall issue). How would you 
handle/implement multiple subscriptions? Some subscriptions like e-Mail 
requires an acknowledgement (a response mail of the subscription mail) before a 
message is forwarded. If this component cannot handle these, I think most (if 
not all) of the subscriptions must be made by hand.

Christian

> Contribute camel-sns component to the new camel-aws component.
> --------------------------------------------------------------
>
>                 Key: CAMEL-3476
>                 URL: https://issues.apache.org/jira/browse/CAMEL-3476
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-aws
>    Affects Versions: 2.6.0
>            Reporter: Mark Ford
>            Assignee: Christian Müller
>            Priority: Minor
>             Fix For: 2.8.0
>
>         Attachments: camel-aws-3476.txt, patchfile.txt, patchfile.txt
>
>
> CAMEL-3468 contributes a new component for interacting with the Amazon SQS 
> service. The camel-sns component allows users to publish/subscribe to topics 
> on Amazon's Simple Notification Service. 
> This code is currently hosted as a google code project here:
> http://code.google.com/p/camel-sns/
> I'll coordinate with Tracy (developer of camel-aws) in the creation of the 
> patch.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to