spec
spec copied to clipboard
Extension attributes: specified and unspecified
While working on introducing the term core attributes within the specification and primer, it looks like we also have another area of ambiguity, this time with extension attributes.
Any given context attribute might be:
- Core, one of:
- Required
- Optional
- Extension, one of:
- Defined in this repo
- Not standardized at all
While we're trying to come up with consistent terms, do we want to have a consistent way of distinguishing between "arbitrary application-specific extension attributes" and "extension attributes which are specified in this repo"?
I suspect there's some work to do even to accept that an arbitrary application-specific extension attribute really is an extension attribute. For example, from the primer:
When the group determines that an attribute is not common enough to fall into those two categories but would still benefit from the level of interoperability that comes from being well-defined, then they will be placed into the "extensions" category and put into documented extensions. The specification defines how these extension attributes will appear within a CloudEvent.
From a spec perspective I don’t think there’s a diff between the two types of extensions. We’re just providing a shared space. Reading that Primer text, I think the “extensions category” phrase might be misleading. Perhaps: ….being well-defined, this repo’s “documented extensions” provides a shared collaboration space. ?
Right - I'm perfectly happy with the idea that there aren't two types of extensions, if everyone else is. We just need to make it clearer that that's the case, basically :)
@jskeet status of this one?
@duglin: I should be able to take this one on as a somewhat isolated bit of work - I'll try to get it done next week.