code: def lookup(key, opts={}, &block)
        unless addr = cache.has?(key)
          addr = link.send('lookup', key, opts, &block)
          cache.save(key, addr)
        end
        yield addr if block_given?
        addr
      end
docs: Initialize can accept custom configuration parameters
   Lookup for a specific service `key`
   passed block is called with the result values
   in case of `http` backend it return the result directly
   @param key [string] identifier of the service