my thoughts is inline On Tue, May 4, 2010 at 6:23 PM, Hiranya Jayathilaka <[email protected]>wrote:
> Sending as a separate mail since my responses to the previous thread are > getting bounced off :( > > Hi Indika, > > On Mon, May 3, 2010 at 8:10 PM, indika kumara <[email protected]> > wrote: > >> As the synapse configuration is the API for end-users to program their >> solutions using synapse, the usability for the end user is important. >> >> Why does a user like in-lined configurations? >> > > I feel that sequences/proxies with in-line endpoints are more readable and > easier to understand. If the endpoint was defined separately then we have to > scroll around quite a bit to get to the endpoint definition from the > sequence/proxy definition. For an example: > > <sequence name="foo"> > <log level="full"/> > <send> > <endpoint> > <address uri="http://some.address"/> > </endpoint> > </send> > </sequence> > > <sequence name="bar"> > <log level="full"/> > <send> > <endpoint key="my.endpoint"/> > </send> > </sequence> > > As you can see sequence 'foo' is self contained and easier to understand > from one glimpse compared to 'bar'. Sequence 'bar' configuration does not > really tell us anything since the endpoint itself may have quite a bit of > logic in it. It could be a load balance endpoint, a secure endpoint and so > on. > So, with in-lined configurations, the readability of the configuration is enhanced. What about reusability and modifiability. If you look at endpoints samples we ship, a lot of content are redundant. It gets worse when adding mark for suspension, error codes etc. Indeed sometime, other than the URI, all other content is redundant. Maintaining such a redundant content is headache. If there is way to reuse correctly endpoint configurations, I do not think he will go for in-lined configurations. > Is it really difficult to give a meaningful yet unique name? >> > > If you have dozens of sequences and proxies, yes. And most of the time the > user does not really gain anything from specifying names for all endpoints > either. > I am not a real user … So I cannot tell that the number of endpoint, sequences, etc … But I believe, it should be less than 1000 for a one server. Even more than 1000, User can easily give unique yet meaningful names as for following reasons 1) User can easily use grouping techniques – e.g. endpoints for services in server1 , services from X service provider , etc 2) Modeling an integration solution (may be any solution) is typically an incremental operation. You never write a complete synapse configuration at one day. It will be evolved for a long time by adding, modifying, removing content. Typically, to add an implementation for a part of integration solution will take time due to testing, monitoring, etc. Mostly, at this point, all endpoints will have unique yet meaningful names because he has tested, monitored each endpoint. > > Or ..because there is no reuse for an endpoint configuration as currently >> the endpoints are stateful and most endpoint configurations are static. >> ? >> > > That could be one reason too. > > Thanks, > Hiranya >
