code: func (event *sendableEvent) send(
  	sendStatusToECS sendStatusChangeToECS,
  	setChangeSent setStatusSent,
  	eventType string,
  	client api.ECSClient,
  	eventToSubmit *list.Element,
  	stateSaver statemanager.Saver,
  	backoff retry.Backoff,
  	taskEvents *taskSendableEvents) error {
  
  	seelog.Infof("TaskHandler: Sending %s change: %s", eventType, event.toString())
  	// Try submitting the change to ECS
  	if err := sendStatusToECS(client, event); err != nil {
  		seelog.Errorf("TaskHandler: Unretriable error submitting %s state change [%s]: %v",
  			eventType, event.toString(), err)
  		return err
  	}
  	// submitted; ensure we don't retry it
  	event.setSent()
  	// Mark event as sent
  	setChangeSent(event)
  	// Update the state file
  	stateSaver.Save()
  	seelog.Debugf("TaskHandler: Submitted task state change: %s", event.toString())
  	taskEvents.events.Remove(eventToSubmit)
  	backoff.Reset()
  	return nil
  }
docs: // send tries to send an event, specified by 'eventToSubmit', of type
  // 'eventType' to ECS