Runtime Mapping ​
Runtime mapping is the official mechanism for controlling where orchestrator, regular steps, and synthetic/plugin side effects are placed.
It is optional and backward compatible:
- If
pipeline.runtime.yamlis absent, scaffold defaults remain in effect. - If
pipeline.runtime.yamlis present, placement/validation/wiring follow that file.
Use this section as the reference for mapping semantics.
Goals ​
- Allow explicit module/runtime placement via YAML.
- Preserve backward compatibility when no mapping is provided.
- Keep config minimal for the common case.
- Provide deterministic, versionable synthetic step identifiers.
- Support both gRPC and REST wiring without drift (transport remains pipeline-global).
- Enable a single-runtime "monolith" option without introducing a deployment DSL.
What runtime mapping controls ​
- Logical placement of steps and synthetics.
- Placement defaults and strictness rules.
- Generated client/server wiring aligned to placement and transport.
What runtime mapping does not control ​
- Maven module topology.
- Number of physical deployables produced.
- CI lane composition/build matrix.
That separation is intentional. Runtime mapping defines logical architecture; Maven topology defines physical artifacts.
Non-goals ​
- A full deployment or orchestration configuration language.
- Replacing existing build or runtime config formats.
- Enforcing a single architecture style.
Relationship to Scaffold Generation and Maven ​
Typical flow:
- Generate the application scaffold from your pipeline model.
- Add or refine
pipeline.runtime.yaml. - Align Maven topology to target runtime shape (
modular,pipeline-runtime,monolith).
If steps 2 and 3 diverge, behaviour may be logically valid but operationally confusing. For example, layout: monolith with modular Maven still yields modular artifacts.
See:
Contents ​
- Schema and Semantics
- Synthetic Step Identifiers
- Annotation Processing and Transport
- Validation, Migration, and Examples
- Build Topologies (What Is Real Today)
- Cheat Sheet
Quick orientation ​
- modular: keep the current multi-module behavior, only place what you need.
- pipeline-runtime: one runtime per pipeline, orchestrator stays separate. This is the default recommendation and keeps a minimal network boundary for future splits.
- monolith: one runtime for everything (orchestrator + services + plugins).
Engineering Notes ​
These pages are implementation-oriented and mainly for maintainers: