   getKite: (options = {}) ->
     { name, correlationName, region } = options
 
+    if (kite = @getCachedKite name, correlationName)?
+      return kite
+
     kite = @getKiteProxy options
 
     @fetchRegion(correlationName, region).then (region) =>

        who   : @getWhoParams name, correlationName
    .then(kite.bound 'setTransport')
    .then(kite.bound 'logTransportFailures')
    .catch(@error.bind this)

    kite

  getKiteProxy: (options) ->

    .catch(@error.bind this)

    kite
