References
- CPS-1065Getting issue details... STATUS
Open Issues & Decisions
# | Issue | Notes | Decision |
---|---|---|---|
1 | List scenarios | Need to clarify scenarios | Refer to Internal study |
2 | Topics | what topics are used in what scenario (topic for each Datastore ?) | See Topics section below.
cm-events topic name should be configurable in deployment settings.
|
3 | Handle unknown event schemas | Wrap event? | Unsupported for now. Thrown exception and log error. |
Event Flow Sketch
CM Event Specification Outline
{ "eventId" : "9999", # some generic event uuid generated by DMI Plugin "event": { } |
---|
RFC 8641 : yang-datastore notification definition
notifications: +---n push-update | +--ro id? sn:subscription-id | +--ro datastore-contents? <anydata> | +--ro incomplete-update? empty +---n push-change-update {on-change}? +--ro id? sn:subscription-id +--ro datastore-changes | +--ro yang-patch | +--ro patch-id string | +--ro comment? string | +--ro edit* [edit-id] | +--ro edit-id string | +--ro operation enumeration | +--ro target target-resource-offset | +--ro point? target-resource-offset | +--ro where? enumeration | +--ro value? <anydata> +--ro incomplete-update? empty |
---|
'operation' type definition
Event Payload Example
Proposed CM event |
---|
{ "eventId" : "9999", # some generic event uuid generated by DMI Plugin "event": { "push-change-update" : { "datastore-changes" : { {
} } } |
CM Change Event Subscription Proposal
Topics
Topic types
Topic Name | Description |
---|---|
cm-events[-<targetgroup>] | topic for publication of events from NCMP to clients (suggest to rename existing topic from 'ncmp-events' to cm-events). In preparation to future needs the there may be separate topics for different security groups. NCMP solution should consider this in its design this upfront. By default cm-events is the default topic where ALL events are published by default. Different client may subscribe to different topics (ALL and/or target group specific). It is their responsibility to subscribe to the appropriate topics as new target groups come into existance. For now the only topic in scope of this story is the 'cm-events' topic. |
cm-avc-subscription | topic for avc event subscriptions. This topic may be defined external to NCMP. If external then it should be possible to tell NCMP the topic name and where to find it. |
dmi-cm-events | internal topic for communications between dmi-plugin ↔ ncmp for avc and subscription events |
Topic partitioning
All events for the same cmhandleId should be sent to the same partition. This will guarantee ordering. Ordering is only guaranteed per topic, not across topic (future consideration).