CPS-1392 NCMP Consume Subscription Event
References
CPS-1392: NCMP - Consume Subscription Creation EventClosed
Steps
Consume Event
Check if dataCategory is 'CM'
log consumption
Check scheme
Create object
Log object
Consumer Pseudo Code
Pseudo Code
public class SubscriptionCreatedEventConsumer {
@KafkaListener(topics = "${app.ncmp.cm-avc-subscription.topic}") //Blocking: See issue #2
public void consumeSubscriptionEvent(final SubscriptionCreatedEvent subscriptionCreatedEvent){
if(subscriptionCreatedEvent.dataCategory == 'CM'){ //Check dataCategory
log.debug("Consuming event {} ...", subscriptionCreatedEvent);
if(checkFormat(subscriptionCreatedEvent)){ //Check format of message
Subscription createSubscription = new Subscription() //Create Object
log.debug("subscription created "+ createSubscription) //Log subscription
}
}
}
public boolean checkFormat(SubscriptionCreatedEvent event){
//Blocking: See issue #1
}
}
Subscription Object - Will be finalised when schema confirmed
Object Parameters
String clientID
Stirng name
String subscriptionID = clientID+name
Boolean isTagged = default no
String dataspace
String dataCategory = necessary? should always be 'CM'
String dataProvidor
String schemeName
String schemaVersion
Collection persistence
Issues & Decisions
Issue | Notes | Decision | |
---|---|---|---|
1 | Subscription Event Scheme | Protocol : Kafka Event Event Scheme{
"version": "<event type version>",
"eventType": "subscriptionCreated",
"event": {
"subscription": {
"clientID": "<unique identifier for the client >",
"name": "<unique subscription name per client>",
"isTagged": "<yes|no>, optional parameter, default is no"
},
"dataType": {
"dataspace": "<data space>",
"dataCategory": "<data category type>",
"dataProvider": "<data provider type>"
"schemaName": "<schema name>"
"schemaVersion": "<schema version>"
},
"predicates": {
"<parameter>": "<value>",
"param2": [
"value21",
"value22"
]
}
}
} | |
2 | Configurable Topic | Pointer where previously implemented |