code: func (e *Invocation) isEqual(other *Invocation) bool {
  	return e == other || (e.ID == other.ID &&
  		e.MutationsCount == other.MutationsCount && // compare it first, it changes most often
  		e.JobID == other.JobID &&
  		e.IndexedJobID == other.IndexedJobID &&
  		e.Started.Equal(other.Started) &&
  		e.Finished.Equal(other.Finished) &&
  		e.TriggeredBy == other.TriggeredBy &&
  		bytes.Equal(e.PropertiesRaw, other.PropertiesRaw) &&
  		equalSortedLists(e.Tags, other.Tags) &&
  		bytes.Equal(e.IncomingTriggersRaw, other.IncomingTriggersRaw) &&
  		bytes.Equal(e.OutgoingTriggersRaw, other.OutgoingTriggersRaw) &&
  		bytes.Equal(e.PendingTimersRaw, other.PendingTimersRaw) &&
  		e.Revision == other.Revision &&
  		e.RevisionURL == other.RevisionURL &&
  		bytes.Equal(e.Task, other.Task) &&
  		equalSortedLists(e.TriggeredJobIDs, other.TriggeredJobIDs) &&
  		e.DebugLog == other.DebugLog &&
  		e.RetryCount == other.RetryCount &&
  		e.Status == other.Status &&
  		e.ViewURL == other.ViewURL &&
  		bytes.Equal(e.TaskData, other.TaskData))
  }
docs: // isEqual returns true iff 'e' is equal to 'other'