<!--
{
  "availability" : [
    "Reality Composer Pro: -",
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ComputeGraph",
  "identifier" : "/documentation/ComputeGraph/ComputeNodeGraph/Port/Kind",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "Compute Graph"
    ],
    "preciseIdentifier" : "s:12ComputeGraph0a4NodeB0V4PortO4KindO"
  },
  "title" : "ComputeNodeGraph.Port.Kind"
}
-->

# ComputeNodeGraph.Port.Kind

The semantic role of a port, determining what it carries along an edge
and whether the edge imposes execution ordering between its endpoints.

```
enum Kind
```

## Topics

### Enumeration Cases

[`case context`](/documentation/ComputeGraph/ComputeNodeGraph/Port/Kind/context)

Carries an ambient runtime context handle injected by the graph at
execution time. Destination reads the handle; no ordering effect.

[`case dependency`](/documentation/ComputeGraph/ComputeNodeGraph/Port/Kind/dependency)

Pure “happens-after” edge. No runtime payload, no type lineage, no
type compatibility check. The destination is ordered after the source
but does not consume its output. Use this to splice a node (e.g. a
compute stage) into execution order between two unrelated nodes.

[`case event`](/documentation/ComputeGraph/ComputeNodeGraph/Port/Kind/event)

Carries a typed event payload. Triggers downstream execution per event
AND carries data (e.g. spawn/update/terminate events with element data).

[`case flow`](/documentation/ComputeGraph/ComputeNodeGraph/Port/Kind/flow)

Execution-ordering edge whose destination is conceptually a consumer
of the source’s typed output. No runtime payload is transferred, but
type compatibility is enforced. Used for stage → stage sequencing.

[`case state`](/documentation/ComputeGraph/ComputeNodeGraph/Port/Kind/state)

Carries a read/write binding to named external storage (element,
emitter, group, output attribute, threadgroup memory). Type is always
`.state(definition:)`. No ordering effect.

[`case value`](/documentation/ComputeGraph/ComputeNodeGraph/Port/Kind/value)

Carries a typed data value from source to destination. One-way read,
no ordering effect.

## Relationships

### Conforms To

[`Copyable`](/documentation/Swift/Copyable)

[`Hashable`](/documentation/Swift/Hashable)

[`Sendable`](/documentation/Swift/Sendable)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`Escapable`](/documentation/Swift/Escapable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Equatable`](/documentation/Swift/Equatable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)