Enum ScyllaModuleDependencyType
Classifies the nature of a dependency relationship between two Scylla modules, controlling how the framework responds when the dependency is absent or version-incompatible.
Namespace: Scylla.Core.Modules
Assembly: ScyllaCore.dll
Syntax
public enum ScyllaModuleDependencyType
Remarks
The dependency type affects both startup validation behaviour and initialization order. Hard and soft dependencies both contribute edges to the topological sort used to determine initialization order; event-based dependencies do not.
Fields
| Name | Description |
|---|---|
| EventBased | The declaring module communicates with the dependency exclusively through the Scylla Event eXchange System (SEX) and holds no direct reference to it. Event-based dependencies carry no startup-time enforcement; their absence is neither an error nor a warning. They are recorded in the Dependencies list purely for documentation and diagnostic tooling purposes, and they do not contribute edges to the topological sort or affect initialization order. |
| Hard | The declaring module requires the dependency unconditionally and cannot function without it. If a hard dependency is absent from the module registry or its version is below the minimum declared in MinVersion, the framework aborts startup with a fail-fast error and rolls back all previously initialized modules. Hard dependencies contribute directed edges to the topological sort used to determine initialization order, guaranteeing that the dependency initializes before the declaring module. |
| Soft | The declaring module can operate without the dependency but will enable richer
or enhanced behavior when the dependency is present. A missing soft dependency
is logged as a warning but does not abort startup; the module initializes
without it. Like hard dependencies, soft dependencies contribute edges to the
topological sort, so if the dependency is present it still initializes before
the declaring module. Concrete module implementations should check whether the
soft dependency is available before using it (e.g., via
HasModule(string) or by testing the cached
reference for |