synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Isuru Udana Loku Narangoda (JIRA)" <>
Subject [jira] [Updated] (SYNAPSE-975) Non blocking Callout Mediator (Call Mediator)
Date Sat, 07 Sep 2013 15:33:54 GMT


Isuru Udana Loku Narangoda updated SYNAPSE-975:

    Attachment: SYNAPSE-975.patch

Attached patch contains Call Mediator implementation. 
Please review the patch.

Design in brief
To keep track of important checkpoints in the mediation flow, a stack (called 'ContinuationState
Stack') is kept in the message context.
Every time when we branch to a new sequence, a entry (called 'ContinuationState') is pushed
in to the stack.
This Stack is used to mediate the response message when service is invoked using the Call

Mediators which branches the mediation flow (Sequence, Filter, Switch, Clone, etc) are capable
of mediate the message using a ContinuationState.
> Non blocking Callout Mediator (Call Mediator)
> ---------------------------------------------
>                 Key: SYNAPSE-975
>                 URL:
>             Project: Synapse
>          Issue Type: New Feature
>            Reporter: Isuru Udana Loku Narangoda
>            Assignee: Hiranya Jayathilaka
>         Attachments: SYNAPSE-975.patch
> One of the major drawbacks in Callout mediator is, it does not leverage the non-blocking
> Send mediator which leverages the non-blocking transports, does not provide a simple
way to implement service chaining scenarios.
> Idea of the the Call Mediator is to solve the above two concerns.
> Call Mediator invokes the backend service in an asynchronous manner and return without
waiting for the response.
> Mediation will be paused from that point.
> When response is received, mediation flow resumes from next mediator placed after the
Call Mediator.
> User will experience two major features with the Mediator.
> * Service chaining scenarios will be much easier to implement.
> * Since both request and response can be handled within a single sequence, can define
reusable sequences. 

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message