Hi Shangfeng,
Here my response is about TMF688.
On our side we took a different approach: whatever the event to POST (through createEvent on the topic) is, the full payload of the resource included (service, resource, product, etc.) is always provided. For example, for a ServiceStateChangeEvent, the full service with full supportingResource and serviceRelationship is posted.
We do that because we expect the field selection to occur at Hub level. In the TMF630 part 1 (V4) section 10.4 Content type filtering, you can see that in the query part of the Hub, you can not only specify a filter but also the fields element (for field selection). Field selection can only be performed if the full payload is passed to TMF688.
It can also have a big advantage at performance level because when a listener receives the event, if the full payload is not passed, he probably has to perform a GET operation to retrieve the full resource (in my case the full service). If all listeners for the same event do that, then it will have a performance hit on the system which is not the case if the full payload is passed at first. The dispatching of the event to the registered listeners will apply the field selection defined for each listener's Hub.
Best regards,
Fred
------------------------------
Frederic Thise
Proximus SA
------------------------------