====== 10.4 Node Runtime Behavior ====== [[fxdemo:05-part:start | Go To Top ]] [[fxdemo:05-part:10-node-implementation-pattern:start | Return to Node Implementation Pattern ]] During runtime, each [[dido:99_annexes:annex-b-terms-and-definitions:n:node|Node]] should perform its assigned role while maintaining [[dido:99_annexes:annex-b-terms-and-definitions:c:control_plane|Control Plane]] visibility. Even a Hello World-style Phase 0 Node should behave as a disciplined runtime participant rather than as a one-off script. A Phase 0 Node should: - Maintain its Node Identity and Node Role. - Publish status at defined [[dido:99_annexes:annex-b-terms-and-definitions:l:lifecycle|Lifecycle]] points. - Subscribe to relevant command topics where the Node supports commands. - Publish or subscribe to defined [[dido:99_annexes:annex-b-terms-and-definitions:d:data_plane|Data Plane]] topics where the Node profile requires it. - Log significant runtime events. - Detect recoverable and non-recoverable errors. - Avoid uncontrolled termination. - Respond predictably to shutdown requests. - Preserve enough [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] to support review and acceptance. Runtime behavior should remain modest in Phase 0. The Node may simulate domain behavior, emit placeholder [[dido:99_annexes:annex-b-terms-and-definitions:d:data|Data]], or simply participate in the Control Plane if the current [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]] does not require full Data Plane processing. However, the Node should still use the same structural pattern that later phases can extend. The Node should not hide architectural decisions inside implementation shortcuts. Topic names, Node Roles, Lifecycle states, command types, and Data Structure references should remain aligned with the Node Catalogue, Topic Catalogue, [[dido:99_annexes:annex-b-terms-and-definitions:i:idl|IDL]] definitions, and architecture documents. ---- © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.