Shared Modules IG
Intent
Extract cross-cutting profiles, extensions, and terminology into a shared package that can be versioned and released independently. This enables multiple domain IGs to depend on common definitions without copy-paste duplication.
Structure
Shared modules create a dependency hierarchy where domain IGs extend common profiles. The shared package is published independently with its own version number, allowing domain IGs to pin to specific versions and upgrade on their own schedule.
Implementation Considerations
Packaging
- Create {org}.shared.{domain} package published independently
- Depend via sushi-config.yaml/ dependencies
- Document compatibility matrix in README
Git strategies
- Prefer standalone repo over submodules; use tags and releases
- Consider Git subtree for vendoring when external network is restricted
Benefits
- Single source of truth
Trade-offs
- Release coordination