code: func newSessionCache(proxyClient auth.ClientI, servers []utils.NetAddr, cipherSuites []uint16) (*sessionCache, error) {
  	clusterName, err := proxyClient.GetClusterName()
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	m, err := ttlmap.New(1024, ttlmap.CallOnExpire(closeContext))
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	cache := &sessionCache{
  		clusterName:  clusterName.GetClusterName(),
  		proxyClient:  proxyClient,
  		contexts:     m,
  		authServers:  servers,
  		closer:       utils.NewCloseBroadcaster(),
  		cipherSuites: cipherSuites,
  	}
  	// periodically close expired and unused sessions
  	go cache.expireSessions()
  	return cache, nil
  }
docs: // newSessionCache returns new instance of the session cache