# Port type safety enforcement

**URL:** <https://forum.opencyphal.org/t/port-type-safety-enforcement/1303>\
**Category:** General\
**Created:** [June 11, 2021, 5:25pm UTC](https://forum.opencyphal.org/t/port-type-safety-enforcement/1303 "2021-06-11T17:25:40Z")\
**Posts on this page:** 1\
**Showing post:** 63

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [July 23, 2021, 6:02pm UTC](https://forum.opencyphal.org/t/port-type-safety-enforcement/1303/63 "2021-07-23T18:02:30Z")

</div>

Our terminology got somewhat distorted. In your SOAP example, `soapaction` has the same role as port-ID (subject-ID or service-ID) in UAVCAN. There is no need to identify the data type explicitly because the data is represented using a self-describing encoding (XML). I don’t think SOAP is hugely relevant though — my references to SOA are related to the design principles rather than one particular method of implementing them in a practical system.

I did spend some time pondering about your latest posts but I am not yet ready to offer much valuable input. I do have a question though.

Speaking very generally, if the type information was trivially deducible from any received transfer, would you find such design acceptable? Your proposal of adding semantic-ID to DSDL suggests that it might be the case.

I should leave this thread here which contains my unedited thought process behind the current architecture:

> [@On multi-agent services and design guidelines](https://forum.opencyphal.org/t/on-multi-agent-services-and-design-guidelines/947):
>
> The UAVCAN Guide says this: A service may be designed in such a way where it is provided by a group of identical collaborating agents with [strong logical cohesion](https://en.wikipedia.org/wiki/Cohesion_(computer_science)). In this case, we admit that the means of differentiating said identical agents from each other belong to the business domain, and as such, the service specification should contain the necessary provisions for that. We call such designs multi-agent services . […] As a practical example of a multi-agent service, consider the propuls…

> **""**
>
> > [@tridge](#):
> >
> > if that is what it takes to make Pavel happy with having a semantic\_id then it would be worth the extra flash space.
> 
> who knew that happiness can be measured in bytes

---

_[View the full topic](https://forum.opencyphal.org/t/port-type-safety-enforcement/1303)._
