Skip to content

Runtime Object and Cache Metadata

This page defines fixed metadata for runtime.object and cache.reference frames. Multi-value fields use the Runtime Control Value Registries.

Object Descriptor Metadata

Used by OBJECT_DECLARE.

OffsetFieldTypeRequiredMeaning
0object_idu64YesRuntime object identity.
8object_kindu16YesSee object_kind in the value registries.
10producer_roleu8YesSee role codes in the value registries.
11consumer_roleu8YesSee role codes in the value registries.
12session_idu32YesOwning session.
16byte_sizeu64YesObject size.
24compute_cost_unitsu32NoCompute units under the negotiated cost model.
28memory_location_hintu16NoSee memory_location_hint in the value registries.
30ownership_hintu16YesSee ownership_hint in the value registries.
32lifetime_hint_msu32NoSuggested lifetime.
36metadata_bytesu32NoOptional object metadata body length.
40reservedu64YesMust be zero.

Object Reference Metadata

Used by OBJECT_REF.

OffsetFieldTypeRequiredMeaning
0object_idu64YesReferenced object.
8operation_idu64NoOperation using the object.
16object_versionu64NoVersion or generation.
24offsetu64NoReferenced byte or region offset.
32lengthu64NoReferenced byte or region length.
40flagsu32YesSee flag masks in the value registries.
44metadata_bytesu32NoOptional reference metadata body length.

Object Release Metadata

Used by OBJECT_RELEASE.

OffsetFieldTypeRequiredMeaning
0object_idu64YesReleased object.
8operation_idu64NoOperation that no longer needs the object.
16release_reasonu16YesSee release_reason in the value registries.
18source_roleu8YesSee role codes in the value registries.
19flagsu8YesSee flag masks in the value registries.
20diagnostic_bytesu32NoOptional diagnostic body length.
24reservedu64YesMust be zero.

Object Delta Metadata

Used by OBJECT_PATCH and OBJECT_DELTA.

OffsetFieldTypeRequiredMeaning
0object_idu64YesPatched object.
8delta_sequenceu64YesMonotonic delta sequence for the object.
16region_offsetu64NoRegion offset.
24region_bytesu32NoRegion length.
28delta_bytesu32YesDelta payload length.
32flagsu32YesSee flag masks in the value registries.
36metadata_bytesu32NoOptional delta metadata body length.

Cache Reference Metadata

Used by CACHE_REFERENCE.

OffsetFieldTypeRequiredMeaning
0cache_namespaceu32YesNamespace of the canonical cache identity.
4profile_idu16YesProfile that defines interpretation.
6reuse_scopeu16YesSee reuse_scope in the value registries.
8cache_key_hiu64YesHigh 64 bits of cache identity.
16cache_key_lou64YesLow 64 bits of cache identity.
24lease_idu64NoLease anchor.
32producer_trace_idu64NoTrace ID of producer.
40expiration_hint_msu32NoExpiration hint.
44metadata_bytesu32NoOptional metadata body length.
48flagsu32YesSee flag masks in the value registries.
52reservedu32YesMust be zero.

Cache Miss Metadata

Used by CACHE_MISS.

OffsetFieldTypeRequiredMeaning
0cache_namespaceu32YesNamespace of the canonical cache identity.
4profile_idu16NoProfile that rejected interpretation.
6miss_reasonu16YesSee miss_reason in the value registries.
8cache_key_hiu64YesHigh 64 bits of cache identity.
16cache_key_lou64YesLow 64 bits of cache identity.
24diagnostic_bytesu32NoOptional diagnostic body length.
28reservedu32YesMust be zero.

Local SDK Cache Policy Contract

SDKs expose a local CachePolicyOptions value so applications must opt into cache reuse explicitly. This value is not a wire payload, is never serialized automatically, and does not perform an implicit lookup. Applications and profiles remain responsible for emitting CACHE_REFERENCE, CACHE_MISS, and CACHE_INVALIDATE frames.

Semantic fieldTypeDefaultValidation
enabledboolfalseWhen true, reuse_scope is required.
reuse_scopeoptional CacheReuseScopenoneMust be absent when enabled is false.
expiration_hint_msu640Must be zero when enabled is false; SDKs narrow explicitly when writing a u32 wire hint.
invalidation_reasonCachePolicyInvalidationReasonexplicitLocal reason propagated only when the application emits an invalidation.

CachePolicyInvalidationReason has the frozen semantic members explicit, dependency_invalidated, lease_expired, version_mismatch, and schema_mismatch. Language bindings use their conventional casing but must preserve these meanings. Disabled policy values must not carry a reuse scope or a non-zero expiration hint.

Conformance Requirement

Wire-level conformance must exercise these profiles by exchanging NNRP frames directly. SDK adapter manifests can help generate scenarios, but they do not replace direct client/server wire checks.

NNRP Documentation