One way of handling it - but really only possible via TMF640 - is to create the services (each service in designed state created by TMF640), on success of each service - update the state to active for that service.
For northbound systems it would be best to use the Hub subscription mechanism to get updates on TMF638 state changes - so that northbound systems know when each service is in active state.
TMF638 is the prescribed way to create services (and you could use it from the TMF640 activation process to create each service, update each service).
Other clients can still use TMF638 directly to query or update (non-configuration changing) attributes of the service.
I should add: the TMF API's are NOT explicitly designed to do batch handling, but they do allow multiple entries in the payload - and as it is in the body of the HTTP request - you should be okay.
------------------------------
Peter Eksteen
Product Manager
CIENA Blue Planet
------------------------------
Original Message:
Sent: Jun 15, 2026 05:23
From: pranay patel
Subject: Open api TMF 638 asynchronous support and batch (multiple) payload support
Hi Peter, thanks for the clarification.
In our case we are using TMF638 only for service enable/disable (provisioning is handled by separate APIs), but:
- We support batch processing (up to 50 in payload, and 50kβ100k via file upload)
- So execution is asynchronous in backend
π During CTK tool tmf compliance testing:
- After POST, PATCH/GET is triggered immediately
- But backend processing for service activation is still ongoing (POST service taken but process run on backend)
π In this situation:
- We cannot practically allow PATCH on services which are not yet enabled
So:
π How should this be handled in a TMF-compliant way?
- Should we still accept PATCH and return 200 (even if processing not completed)?
- Or is it valid to reject PATCH while service is under processing?
Also:
π Even if we move to TMF640, the same async behavior will exist, so CTK failure would still happen.
So what is the recommended way to handle this conflict between asynchronous processing and CTK expectations?
------------------------------
pranay patel
TO BE VERIFIED
------------------------------
Original Message:
Sent: Jun 15, 2026 04:12
From: Peter Eksteen
Subject: Open api TMF 638 asynchronous support and batch (multiple) payload support
Hi Pranay,
TMF638 is intended to be purely an inventory API, and as such it is not constructed to support provisioning of services. The interfaces that deal with provisioning are TMF640 Service Activation Management, TMF702 Resource Activation Management and TMF664 Resource Function Activation Management.
Take a look at those and think about how you might utilize them in your architecture - as they are much better suited for provisioning and activation.
There are broadly 2 approaches:
- Run the provisioning transaction, and if it succeeds, update the inventory with a TMF638 call.
- Record the intended change in the inventory with an additional state, run the provisioning instruction and if it succeeds change the actual state on the inventory using TMF638.
The second has the benefit that anyone retrieving from the inventory will see which services are undergoing change.
------------------------------
Peter Eksteen
Product Manager
CIENA Blue Planet
------------------------------