func (d *downstreamResponseMap) createWatch(req transport.Request, scope tally.Scope) transport.Watch {
	d.mu.Lock()
	defer d.mu.Unlock()
	if _, ok := d.watches[req]; !ok {
		d.watches[req] = req.CreateWatch(scope)
	}
	return d.watches[req]
}
createWatch initializes a new channel for a request if it doesn't already
exist.
package orchestrator
import (
	"sync"
	"github.com/envoyproxy/xds-relay/internal/app/cache"
	"github.com/envoyproxy/xds-relay/internal/app/mapper"
	"github.com/envoyproxy/xds-relay/internal/app/transport"
	"github.com/uber-go/tally"
)
type downstreamResponseMap struct {
	mu      sync.RWMutex
	watches map[transport.Request]transport.Watch
}
func newDownstreamResponseMap() downstreamResponseMap {
	return downstreamResponseMap{
		watches: make(map[transport.Request]transport.Watch),
	}
}