in reply to How to decide which implementation to use?

I would say:

A list or arrayref containing all the implementations for this interface.

I think the callee has no business trying to second-guess the caller. The caller will have to decide which one it wants. I'm working on something similar (though we use 'registry' for what you call 'kernel', and 'service' for 'agent') and to me it seemed more natural that way.
  • Comment on Re: How to decide which implementation to use?