These are the old pages from the weblog as they were published at Cornell. Visit for up-to-date entries.

February 27, 2004

WS-Eventing Feedback

I was going over my notes from the ws-eventing workshop at Tibco last week, and condensed them down to a list of items that I thought were the topics/changes that people cared about. Given that documents such as minutes, etc. are not accessible unless you sign the ws-agreement, I would like to publicly post my recollection of the meeting. This list is not necessarily congruent with the general consensus of the workshop participants. Jorgen already posted some general remarks about the attendance at the workshop.

  • The required use of ws-addressing. The proposed use of ws-addressing has a few people worried. Not so much in the subscription request body, but requiring the header to carry wsa:SendTo and wsa:To puts extra requirements/limitations on the bindings that can be used.
  • Composability of ws-addressing. This is a more general issue with using multiple layers that each use wsa, are there any assurances that each of these layers will use the wsa elements in an identical semantic fashion?
  • Time. There was quite a bit of discussion of absolute time and duration specifications, and what exact semantics operations will have (e.g. does renew(duration), extend you existing subscription or create a new starting point). How to deal with devices that can only handle one type of spec (e.g. don't have a rt clock).
  • Load management. There was discussion about whether there should be facilities in terms of API or message attributes that assist load management of intermediaries/brokers and publishers. Priorities, time-to-live, drop policies, a rate policy/contract, etc. I believe that non of these will make  this into the spec. The specs deals with the minimalist form of asynchronous event delivery, and load control is outside of that scope.
  • Flow control. This is of course a technique to get a grip on load management, but I believe it has a wider application area as flow control can also be seen as end-to-end mechanism, which plays an important role in reliable delivery of events. I don't think many people got very excited about this issue (except me and maybe the guys from  KnowNow).
  • Formal Semantics. Is Renew with a 0 duration the same as an unsubscribe? Does subscribe with a 0 duration give you a single shot of the publisher's state?
  • Event Message. it is important to deliver a RAW event to an endpoint, as it is in the spec now, but should there be a second possibility for encapsulating the event in a Event Message structure, that could carry additional information about the event? The counter argument is that under SOAP you stick these extra properties in the header and do not invent a message-inside-a-message format.
  • Boxcarring. Of course the previous problem immediately brings up the issue of boxcarring, how to stick multiple bodies (in this case events) in a single message, given that you want to place their metadata in the header. There was no desire to fix this as it is seen as a larger SOAP problem. People were hoping for a sort of ws-boxcarring spec to solve this in a more general sense.
  • Reliability. Can a reliable message transfer provide all the ordering and reliability guarantees we need? How do the sinks find out whether sources have failed? Should a heartbeat mechanism be available? I believe a number of these can be addressed by having the subscription carry some policy requests (I can handle up to x messages/sec, please send a null event every 60 seconds, if there are no events to publish, etc.). Or draw on the reliability layers to provide you with this info. I guess nobody has read the Service Tracking paper for more thoughts on failure detection...
  • Crash behavior. What is the behavior under crash scenarios, should subscriptions be persistent at the publisher? There was a request for an API extension that would allow the sinks to probe for the subscriptions that it is part of.
  • Unsollicited event delivery. Given that 3rd parties can subscribe endpoint to an event stream, there was discussion about what access control policies would be appropriate to avoid spam events.

Overall the workshop was rather productive, I was impressed with how quickly all the issues with such a relatively simple spec came on the table. I can image that the feedback-workshop for ws-notification would need a few more days to get through that spec.

I don't think there will be another feedback workshop on this spec. There is sufficient clarity now to start building prototypes and get ready for interop testing.

Posted by Werner Vogels at February 27, 2004 09:44 AM

WS-Eventing Feedback
Excerpt: Werner Vogels has a very interesting summary of the WS-Eventing feedback workshop....
Weblog: Stefan Tilkov's Random Stuff
Tracked: February 28, 2004 06:34 AM