Exception Handling In Steps

17 views
Skip to first unread message

Rajesh Maheshvari

unread,
Jun 8, 2020, 11:40:02 AM6/8/20
to Syndesis
Hello Everyone

we are exploring to use syndesis for low code integration framework. 
We found two biggest challenges. 

1. Exception handling  : if any steps throw an exception then how to catch and do some business operation,. In camel we have onException 

For example, my message has been consumed from active mq and failed in database insertion, i want to put that message in another queue 

2. transaction management
- how to handle xa transaction.

Pasquale Congiusti

unread,
Jun 9, 2020, 5:45:35 AM6/9/20
to Syndesis
Hi Rajesh,
thanks for providing a feedback to Syndesis community. About Exception Handling it's a feature we have implemented in certain connectors (webhooks and API Provider) but it should be easily extensible to other connectors too. I'll take the opportunity and I will write some short blog post to document how to extend that to a connector, stay tuned. For the time being you can reference either the Webhook as a starting point: https://github.com/syndesisio/syndesis/blob/master/app/connector/webhook/src/main/java/io/syndesis/connector/webhook/WebhookOnExceptionHandler.java

About the XA transaction that's a more complex argument. As far as I know Syndesis is not providing any "direct" feature to manage a XA transaction. As it's based on Camel you may find a way to tweak the final integration and include such facility on the integration level, but, even in that case you will require to include some external transaction manager such Narayana or Atomikos.

Cheers,
Pasquale.

Kurt Stam

unread,
Jun 9, 2020, 6:12:21 AM6/9/20
to Pasquale Congiusti, rajesh.m...@ics-global.in, Syndesis
Hi Rajesh,

Maybe I can elaborate a bit more on this.

1. Regarding the onException. This is added for a Webhook and the API-Provider, so that they can return an exception to the caller. It is not yet implemented for other integrations as it requires rather large changes to the UI so to handle different execution paths. This feature is planned for a future release. Even detailing the use case in a jira would help us to gain some perspective from other users.

2. As far as XA transactions. I’d recommend you use this inside an extension. I would discourage attempting to span transaction across steps in an integration. I’d rather look into ’saga’ pattern: https://developers.redhat.com/blog/2018/10/01/patterns-for-distributed-transactions-within-a-microservices-architecture/

—Kurt

--
You received this message because you are subscribed to the Google Groups "Syndesis" group.
To unsubscribe from this group and stop receiving emails from it, send an email to syndesis+u...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/syndesis/82668bfd-25d4-4fe9-96b8-cae0570a8705o%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages