>> 3. High-level Protocol Flow, last bullet point. "The hub caches >> minimal metadata..." I read this a few times and it seems to be >> describing one particular implementation strategy. If so, why not say >> so? The current language makes it look like this is maybe a normative >> part of what you have to do to implement PuSH, which I'm pretty sure >> it isn't. > > I think this is intended to be normative. A stateless hub can't > function properly (doing feed diffs). The language here was chosen > specifically to imply stateful handling of content without dictating > the specific implementation.
In fact, what you're specifying is that the hub MUST be able to detect a delta so it can inform subscribers. Normative text should specify policy not mechanism. This touches on a nasty subject that you probably don't want to go near. If I were implementing, I think it might be perfectly OK to stash just atom:feed/atom:updated and //atom:entry/atom:updated. I am quite sure there are others who would disagree & insist on stashing enough to detect differences in the white space between attribute values. Don't laugh, I speak from bitter experience. If there's one thing we learned in the process of building 4287, it is hopeless to expect consensus on what constitutes an "update". I have a thousand emails to show you if you disagree. So I think it's probably inappropriate to specify "minimal" metadata. Just say "The hub stores sufficient state information about each topic to detect changes so that it can notify subscribers." -T
