currently, the dependencies between deployment units come in two flavours
- implicit by name / ending
- explicit by depends-entries
Unfortunately those are not available at the same time.
It would be good to have as a result of (Abstract)DeploymentScanner.scan() a complete graph of deployment ordering.
With machines with more than one cpu in mind, this would allow for parallel deployment of arbitrary services.
The deployment process would run in one thread and all graph edges that are parallel could be deployed in parellel. The nots (*) of the graph would then be join points that can only be left if all previous edges are processed.
Bringing this one step further, and implementing the maximum flow algorithm, one could even allow for temporary deployments where a service is e.g. only deployed wile bootstrapping and then undeployed to be replaced by a full blown version of the service.