Enhancement
Major
Detail
Bugfix
Detail
A service(ManagedClass) can have either a declared dependency (tl:ServiceDependencies) or a configured dependency (tl:ServiceConfiguration) to another service. In both cases, all dependencies of a service always start before the service that declares the dependency.
Enhancement
A weaker form of dependency is the optional dependency. Here, one service can use another if it is available or as long as it is available. The optional dependency does not imply any start/stop dependency between services.
Application
The service A that wants to use a service B declares the interface ServiceDependency<B> and registers the dependency in its StartUp method on the module of service B(B.Module.INSTANCE.addServiceDependency(this)).
Test
See #26529: The application resources get the cluster manager as an optional dependency.