Currently the clustering contrib will fail at initialization time if an algorithm (or some of its dependencies) is not available. This shouldn't be so eager, instead:
- the declaration of an engine should allow optionality,
- log the message about unavailable engine/algorithm (and its ID); if it is optional, the message can have a debug level,
- fail at query-time if the engine is requested explicitly.