Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

#IssueDecisionNotes/Jira
1What topic to use for client?To be supplied by cientTopic provided by client as a parameter which will be injected into our environment and used for asynchronous requests sent back to client.
2What topic to use for private DMI-NCMP?
e.g. ncmp-async-private but decision needs to be made with current best practices.
3Are adding a new REST endpoint for async or modifying an existing endpoint?/ncmp/v1/data/ch/123ee5/ds/ncmp-datastore:*?topic=<topic-name> 


Agreed

To facilitate asynchronous requests to DMI we will need to either create a new endpoint or modify existing endpoint to include /async flag. The second solution may not be backwards compatible. However creating a new endpoint solely for a flag is also not ideal. We could add async to list of options (but this might interfere with the purpose of /options.

Additionally, considered adding a new endpoint for async which simply re-routes the response to the original endpoint while adding the logic for OK response to the client. However, would this lead to a change in the schema? If so, would this be backwards compatible?

Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-830

4Agree URL for async once #2 is clarified

/ncmp/v1/data/ch/123ee5/ds/ncmp-datastore:*?topic=<topic-name> 


CPS R10 Release Planning#NCMPRequirements #11. Based on this additional path parameter we no longer require additional /async flag in url.
5Passthrough request need to be able to handle different response types (using accept header) but the async option would have a fixed and possibly different response type.We should, by default, be able to accept multiple contnet-types.CPS R10 Release Planning#NCMPRequirements #11.
6Should we create a standalone app to demo or are tests sufficient?Yes, standalone app would be helpful, along with traditional tests.CSIT tests may require more involved effort - perhaps we could add standalone app to nexus and use it as part of CSIT test?
7

Do we need to persist the generated requestID?

NoWe should be be stateless
8What mechanism should we use for the payload? Event?, Header?, 
This needs clarification
9Error ReportingOut of scope
10CSIT Testing
Will this be required to add to CSIT tests? If so, client app will need to be created and stored in gerrit for cloning during setup phase. 


Proposed Diagram

...

draw.io Diagram
bordertrue
diagramNameCPS-821
simpleViewerfalse
width1000
linksauto
tbstyletop
diagramDisplayName
lboxtrue
diagramWidth1209
revision12

Rest Endpoint with Async Flage

To facilitate asynchronous requests to DMI we will need to either create a new endpoint or modify existing endpoints to in /async flag. See Issues/Decisions.

...

<ncmp>/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore

revision12

...


Kafka config & Implementation

...

Code Block
languageyml
titleExample Kafka Docker-Compose
collapsetrue
  kafka:
    image: confluentinc/cp-kafka:6.1.1
    container_name: kafka
    ports:
      - "19092:19092"
    depends_on:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,CONNECTIONS_FROM_HOST://localhost:19092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONNECTIONS_FROM_HOST:PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

Response types for Passthrough

Will we be able to handle everything "as-is"?

TODO: Clarify what the response type will be e.g. Object, String, JSON


Future (or alternative)

...

What are Futures?

...

Jira
serverONAP Jira
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-834

To facilitate demo and testing of this functionality a new standalone app will be required to act as client.