your second example is incomplete so it's unfair ;-)
(you didn't fetch the Bridge as you do in the first example)

Also this code is not the final version, as:
 - we're still discussing about if & how checking against duplicate matches
 - I expect the final version to reuse the BridgeProviders, not to run service discovery on each guess invocation

Ultimately I think we're skilled enough to handle both :-) But users (implementors) will have to implement the BridgeProvider, so that's a more interesting comparison to make.