NHSDigital/integration-adaptor-111

Implication of sync mode of NHS 111 adapter

Closed this issue · 5 comments

Description

It is my understanding that the architecture from NHSD is for the adaptor to be done in sync fashion.
I just wonder what happens if the sender requires an infrastructure acknowledgment.
Do the adapter will send the infrastructure acknowledgment if the message is received and processed successfully.

My concern is if the sender requires them, most likely they are going to retry to send the message again if they don't receive infrastructure acknowledgment after a certain amount of time. So we may end up processing a CDA document multiple times unless we have a duplicate check in the adapter, which is not present at the moment. Another risk is the sender system will assume the recipient system may not have received/processed the message because it still waiting for the infrastructure ack.

I wonder what is the migitation plan in place by turning into sync mode and overriding inherent ITK interactions. Bear in mind, we already have NHS111 live implementation, which still follows ITK interactions (async mode), so I think the assumption being made need to consider this aspect as well.

Component
NHS111 adapter

Version
0.1.0

Step to Reproduce

  • Put the valid a CDA in the payload, and send
  • the sender should receive infrastructure ack if it requires it.

Test Data
Any data

Preconditions
None

Environment
local environment

Severity
high

Priority
low

Expected Behavior
The adapter tests the validity of SOAP replyTo endpoint.
The adapter replies with Infrastructure ack to SOAP replyTo endpoint if sender requires it.

This was not an requirement for the 111 adapter, this was to be synchronous only. Will confirm if this is required in SCAL.

This is more a risk log issue, something that may be overlooked when the decision is made. This can appear either in the 111 adapter risk logs or supplier accreditation risk logs, I raised it here to see what is the migitation or if this is actually can cause a problem in live or not.

Hi @Kusnaditjung as far as l'm aware all existing NHS 11 deployments have historically been synchronous. Can you please confirm why you think you're existing deployment is async?. Thanks.

I am not sure whether or not we have a different understanding of sync or async in this case, but I will assume we are on the same page in regard to sync and async, as the detail is explained above. In regard to my thinking, this may due to my experience doing the implementation for ITK-CDA and E-transfer (Web service and Mesh) in my previous employment. Though I am not doing NHS 111 directly, they shared the same code base, so I thought they should be the same. If you are certain that is not the case, this issue can be closed.

Yes, it's been also been confirmed by the ITK team that 111 deployments are synchronous.