Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 3 Next »

Overview

Objective

The objective of this feature is for CPS-NCMP to successfully forward notification to the correct topic(s) of a relevant subscription.

High-Level Work Flow

1

Trigger event

DMI cm data notification event

2

Process flow

  1. NCMP consumes event from DMI

  2. NCMP identifies the subscription(s) relevant to the details of the consumed event

  3. NCMP forwards the event to the topic(s) of the relevant subscription(s)

3

Outcome

Event forwarded to correct topics of subscribers

Feature Components

Component

Responsibilities

NCMP

  1. Process the event consumed and identify subscriptions

  2. Identify topics for given subscription

  3. Interact with Kafka through Consumer/Producer set up

  4. Handle errors

Kafka

Consumer

  1. Consume events with the following

    1. Consumer Group: ncmp-group

    2. Topic: app.ncmp.avc.cm-events-topic

Producer

  1. Produce events with the following

    1. Topic: based on subscription

    2. Event key: same as consumed event

    3. Event: consumed event

  2. Use of right keys

  3. Handle failures/retries

Database

Subscription information

DME

  1. Life cycle of topic

  2. Creation/Deletion of subscriptions

Potential Challenges with Dependencies

Challenge

Event ordering

Service Layer Design

Mapping of events to correct subscriptions

Identifying topic for given subscriptions

Forwarding Notification based on subscription

Retry logic

Error Handling

Description

Dead-letter queues?

No write access to kafka topic

Log failed request

Kafka topic does not exist

Log failed request

No valid topic name in subscription ID

Performance Considerations

NCMP

  • Caching

Security Considerations

  • Data validation

    • Event consumed will be forwarded as is

  • Access control (write permissions) to topics is controlled by client

Testing

unit tests

integration tests

E2E

k6?

Monitoring and Logging

Metrics

  • count notification on not forwarded events

Logs

  • log of errors? log key events? messaged produced

  • Failed request when a client topic does not exist

Conclusion

  • No labels