code: func (m *Manager) BuildTCP(rootCtx context.Context, serviceName string) (tcp.Handler, error) {
  	ctx := log.With(rootCtx, log.Str(log.ServiceName, serviceName))
  
  	serviceName = internal.GetQualifiedName(ctx, serviceName)
  	ctx = internal.AddProviderInContext(ctx, serviceName)
  
  	if conf, ok := m.configs[serviceName]; ok {
  		// FIXME Check if the service is declared multiple times with different types
  		if conf.LoadBalancer != nil {
  			loadBalancer := tcp.NewRRLoadBalancer()
  
  			var handler tcp.Handler
  			for _, server := range conf.LoadBalancer.Servers {
  				_, err := parseIP(server.Address)
  				if err == nil {
  					handler, _ = tcp.NewProxy(server.Address)
  					loadBalancer.AddServer(handler)
  				} else {
  					log.FromContext(ctx).Errorf("Invalid IP address for a %s server %s: %v", serviceName, server.Address, err)
  				}
  			}
  			return loadBalancer, nil
  		}
  		return nil, fmt.Errorf("the service %q doesn't have any TCP load balancer", serviceName)
  	}
  	return nil, fmt.Errorf("the service %q does not exits", serviceName)
  }
docs: // BuildTCP Creates a tcp.Handler for a service configuration.