====== 4.3 Source Directories ====== [[fxdemo:05-part:start | Go To Top ]] [[fxdemo:05-part:04-repository-layout:start | Return to Repository Layout ]] The ''src/'' directory should contain handwritten implementation source files. Developers should place [[dido:99_annexes:annex-b-terms-and-definitions:n:node|Node]] implementations, reusable runtime utilities, shared constants, command handlers, status publishers, [[dido:99_annexes:annex-b-terms-and-definitions:c:configuration|Configuration]] readers, logging helpers, and other handwritten runtime code under this directory. The team should organise ''src/'' by implementation concern and, where useful, by language. For example, if Phase 0 uses more than one implementation language, the [[dido:99_annexes:annex-b-terms-and-definitions:r:repository|Repository]] may separate source code into language-specific subdirectories. A representative structure is: src/ nodes/ common/ control-plane/ data-plane/ The ''src/nodes/'' directory should contain Node-specific implementation code. The ''src/common/'' directory should contain reusable support code that more than one Node uses. The ''src/control-plane/'' directory should contain [[dido:99_annexes:annex-b-terms-and-definitions:c:control_plane|Control Plane]] support code, such as status reporting and command handling. The ''src/data-plane/'' directory should contain [[dido:99_annexes:annex-b-terms-and-definitions:d:data_plane|Data Plane]] support code where Phase 0 requires it. Developers should not place generated code in ''src/''. Generated code should live under ''generated/'' so that reviewers can distinguish handwritten implementation from reproducible generation output. ---- © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.