1. Does your approach align with TMF641 best practices?
POST for Service Order Creation: Yes, creating a new Service Order with serviceOrderItem.action=add and initial service.state=Reserved is consistent with TMF641. The POST should represent the intent to add a service.
PATCH for Updates: Using PATCH to update the Service Order or its items is allowed in TMF641. However:
PATCH is typically used to update the order resource (e.g., status, attributes), not necessarily to drive the service lifecycle directly.
The service state transitions (Reserved → Designed → Active) are usually managed by the service inventory or service activation system, not by the order itself. The order reflects progress via its order item state (e.g., Acknowledged, InProgress, Completed).
So, while your approach works technically, it's slightly mixing order state and service state responsibilities.
2. Constraints and Considerations
Idempotency: PATCH requests should be idempotent. Ensure that repeated PATCH calls don't cause unintended side effects.
State Model: TMF641 doesn't define the internal service lifecycle; it focuses on the order lifecycle. If you expose service.state in the order payload, make sure it's clearly documented as informational, not authoritative.
Atomicity: Each PATCH should represent a valid transition. Avoid skipping states unless your business rules allow it.
Synchronous Responses: TMF641 supports synchronous responses, but for long-running processes, consider asynchronous callbacks or notifications (TMF642/TMF640).
3. Recommended Modeling
Use Service Order Item State for Workflow:
Acknowledged → InProgress → Completed
Delegate Service State Changes to Service Inventory (TMF638):
The order triggers service creation/modification, but the actual state (Reserved, Designed, Active) should come from the service inventory API.
Alternative Pattern:
POST Service Order (action=add)
PATCH Service Order Item to reflect progress (InProgress, Completed)
Use TMF638 for service state transitions (or internal orchestration).
------------------------------
Chirag Raval
Lead Consultant
Infosys Ltd
------------------------------
Original Message:
Sent: Oct 30, 2025 08:00
From: Akshat Shukla
Subject: Guidance on using service.state with POST Requests in TMF641 Workflow
Hi TM Forum community,
We're working on a scenario where the Cross Domain Network(XDN) layer interacts with the ODM using TMF641. After certain actions are performed within ODM, synchronous responses are sent back to XDN.
The workflow is expected to complete in three stages, and our current implementation involves:
- A POST request from XDN to ODM
- Followed by two PATCH requests to update the service state
- POST(serviceOrderItem.action=add, service.state=Reserved)
- PATCH(serviceOrderItem.action=modify, service.state=Designed)
- PATCH(serviceOrderItem.action=modify, service.state=Active)
We'd appreciate guidance on:
- Whether this use of service.state transitions via POST/PATCH requests aligns with TMF641 best practices
- Any constraints or considerations we should be aware of when using POST/PATCH for state progression
- Recommendations for modeling this workflow more effectively
Please let me know if further context is needed.
Thanks & Regards,
Akshat
#OpenDigitalArchitecture
------------------------------
Akshat Shukla
BT Group plc
------------------------------