LiteBus
CatalogRuntime

Module Dependency Ordering

  • ID: runtime.module-dependencies
  • Name: Module dependency ordering
  • Maturity: GA
  • Summary: Uses IRequires<TModule> and ModuleDescriptor.Create to build dependency edges.

What It Does

Modules declare dependencies by implementing IRequires<TModule>. Descriptor creation reflects these markers and provides dependency sets for topological sort.

Public Surface

APIRole
IRequires<TModule>Dependency marker
ModuleDescriptor.Create(IModule)Extracts dependencies
ModuleDescriptor.DependenciesRequired module types

Packages

  • LiteBus.Runtime.Abstractions
  • LiteBus.Runtime

Requires

  • runtime.modules
  • runtime.module-registry

Invariants

  • Dependencies are exact module types.
  • Multiple IRequires<> markers are supported.

Non-Goals

  • Optional dependency negotiation.

Observability

No direct telemetry; errors surface during registry ordering.

Test Coverage

Covered Use Cases

ModuleRegistryTests.ModuleDescriptor_Create_ShouldCollectIRequiresDependencies

  • Test kind: Unit
  • Expected outcome: dependency set matches markers

ModuleRegistryTests.Enumerate_WithMissingRequiredModule_ShouldThrowLiteBusConfigurationException

  • Test kind: Unit
  • Expected outcome: missing dependency is rejected

Untested Use Cases

Use casePriorityNotes
Large fan-out dependency graphsLowNot benchmarked

Out-of-Scope Use Cases

  • Versioned dependency constraints.

On this page