[ 
https://issues.apache.org/jira/browse/SYNAPSE-618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12846781#action_12846781
 ] 

Hiranya Jayathilaka commented on SYNAPSE-618:
---------------------------------------------

Hi Denis,

If you are willing to learn more on the subject, you can study the existing 
error handling mechanisms in Synapse. Synapse allows you to associate a fault 
sequence with every proxy service which is triggered in case of an error. 
Endpoints also have a good error handling implementation where we register an 
error handler before sending a message out and later invoke in case of an error 
(we maintain a stack of error handlers here). We should be able to leverage 
these existing error handling techniques to identify errors and push the 
messages into the dead letter channel.

You should also get familiar with the Synapse configuration model. Our 
configuration model is based on an XML configuration language. We use a set of 
factories to parse the XML syntax and construct the Synapse configuration 
object model. Implementing a dead letter channel would require some additions 
to the configuration language. So better to be familiar with it.

You can also have a look at some of the existing implementations of the dead 
letter channel pattern. Apache Camel supports this pattern out of the box. 
Looking at an existing implementation will help you understand the exact 
semantics of the pattern.

Thanks,
Hiranya

> [GSoC] Implement a Dead Letter Channel for Synapse
> --------------------------------------------------
>
>                 Key: SYNAPSE-618
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-618
>             Project: Synapse
>          Issue Type: New Feature
>          Components: Core, Endpoints
>            Reporter: Hiranya Jayathilaka
>             Fix For: FUTURE
>
>
> Currently when Synapse attempts to send a message and if it fails, following 
> actions can be configured to deal with the error:
> * Execute a fault sequence and handle the failed request gracefully
> * Fail-over to a different endpoint
> In addition to these, Synapse ESB should support the "dead letter channel" 
> enterprise integration pattern to deal with various errors that might occur 
> during mediation or while sending. With the dead letter channel, the failed 
> message will be put into a message store in the ESB. Later the ESB can retry 
> to send the messages in the message store. 
> We should be able to have multiple implementations of the actual message 
> store and should be able to configure which store to use for a particular 
> scenario. Users should be able to implement their own message stores and plug 
> into the ESB easily. To start with we can have a simple in-memory message 
> store and a persisting store based on JDBC or JMS. 
> References:
> http://www.eaipatterns.com/DeadLetterChannel.html
> https://issues.apache.org/jira/browse/SYNAPSE-263
> Possible Mentors:
> Hiranya Jayathilaka

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org
For additional commands, e-mail: dev-h...@synapse.apache.org

Reply via email to