I've been thinking about the sort of things a Mediator might want to do and what Synapse provides so far with the proposed phase/ruleset/stage stuff. It covers most things but its not really clear on how to add or remove Mediators to the path of a message flowing through Synapse. I think thats the sort of thing we've been trying to do with Mediators returning ints and having rulesets with loopy behaviour, but it doesn't seem perfect yet.

Is this something we want to be able to do?

If so, how about making each ruleset/stage (and Mediator?) in the current phase addressable to a Mediator so it can fiddle with the list to control where a message goes to next. There would be an API for the Synapse config to be interrogated by a Mediator which provide functions to get and modify the ruleset/stage list being used for the current message. So in affect the phase defines a default list of rulesets/stages for each messages, like a default routing path through Synapse, but a Mediator can add/remove things to that path for each individual message.

   ...ant

Reply via email to