Skip to content

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.

Multi-IG dependency structure with shared modules

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