code: func (s *Service) Send(ctx context.Context, msg Message) {
  	go func(ctx context.Context, msg Message) {
  		setCurrentIdentity(ctx, &msg)
  
  		u, err := url.Parse(s.config.GetNotificationServiceURL())
  		if err != nil {
  			log.Error(ctx, map[string]interface{}{
  				"url": s.config.GetNotificationServiceURL(),
  				"err": err,
  			}, "unable to parse GetNotificationServiceURL")
  		}
  
  		cl := client.New(goaclient.HTTPClientDoer(http.DefaultClient))
  		cl.Host = u.Host
  		cl.Scheme = u.Scheme
  		cl.SetJWTSigner(goasupport.NewForwardSigner(ctx))
  
  		msgID := goauuid.UUID(msg.MessageID)
  
  		resp, err := cl.SendNotify(
  			goasupport.ForwardContextRequestID(ctx),
  			client.SendNotifyPath(),
  			&client.SendNotifyPayload{
  				Data: &client.Notification{
  					Type: "notifications",
  					ID:   &msgID,
  					Attributes: &client.NotificationAttributes{
  						Type:   msg.MessageType,
  						ID:     msg.TargetID,
  						Custom: msg.Custom,
  					},
  				},
  			},
  		)
  		if err != nil {
  			log.Error(ctx, map[string]interface{}{
  				"message_id": msg.MessageID,
  				"type":       msg.MessageType,
  				"target_id":  msg.TargetID,
  				"err":        err,
  			}, "unable to send notification")
  		} else if resp.StatusCode >= 400 {
  			log.Error(ctx, map[string]interface{}{
  				"status":     resp.StatusCode,
  				"message_id": msg.MessageID,
  				"type":       msg.MessageType,
  				"target_id":  msg.TargetID,
  				"err":        err,
  			}, "unexpected response code")
  		}
  		defer rest.CloseResponse(resp)
  
  	}(ctx, msg)
  }
docs: // Send invokes the fabric8-notification API