Versions Compared

Key

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

...

Jira
serverONAP Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQuerykey = CPS-828
serverId425b2b0a-557c-3c0c-b515-579789cceedb

Issues/Decisions

...

#IssueDecisionNotes/Jira
1What topic to use
? proposed ncmp-async-xxxTopic provide by client?!
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?ncmp-async-private
3
2
Are 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
key

CPS-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.
5
CPS-8303Agree URL for async once #2 is clarified4
Passthrough 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.
5How many messages are we expecting at peak time?
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?

8
NoWe should be be stateless
Will cps-temporal require the requestID?


Proposed Diagram

...

draw.io Diagram
bordertrue
diagramNameCPS-821
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth7711211
revision56

Rest Endpoint with Async Flag

...

Code Block
languagejava
titleThread Example
collapsetrue
int number = 20;
Thread newThread = new Thread(() -> {
    System.out.println("Factorial of " + number + " is: " + factorial(number));
});
newThread.start();


#TypeProsConsRecommend
1FutureFutures return value
Y
2Thread
threads does not return anything as the run() method returns void. We could possibly implement mechanism to trigger a response but this is unnecessary as futures do thisN

RequestID Generation

...

TypeMethodEase of implementationRecommend
UUID
String uniqueID = UUID.randomUUID().toString();
EasyY
CustomWe generate our ownMedium - HardN
HTTP Request ID



Async Request Option using Messaging

...