Annotation Processing and Transport ​
The annotation processor (AP) runs per module, but runtime mapping is global. The processor must resolve the full mapping, then filter to the current module.
Resolution flow (per module) ​
- Load
pipeline.runtime.yamlif present. - Build the global step and synthetic index from annotations/aspects.
- Resolve placement for each step/synthetic:
- explicit mapping
- otherwise defaults (if
validation: auto)
- Filter the resolved set to the current module.
- Generate server and client artifacts for the module.
Transport and client wiring ​
- Each module belongs to a runtime.
- Transport is configured globally in
pipeline.yamland applies to the whole pipeline. - Cross-module calls use the pipeline transport (gRPC or REST).
- Calls within a module use direct in-process wiring (current behavior).
Monolith layout ​
- Logical placement resolves all services/plugins to one module.
- Client wiring is generated as in-process for that single-module target.
- This becomes a real monolith runtime only if the Maven/build topology is also monolithic.
- Transport settings remain relevant only for external exposure (if any).
Pipeline-runtime layout ​
- Steps within the same pipeline must resolve to a single runtime.
- The orchestrator remains a separate runtime (current default scaffolding behavior).
- As with monolith, this is logical placement first; physical deploy units depend on build topology.
Backward compatibility ​
If the mapping file is not present or validation: auto with no explicit placements, the processor must behave exactly as it does today.