code: @Override
    public int compareTo(Object other) {
      if (other == null) {
        return -1;
      }
      AppKey otherKey = (AppKey) other;
      return new CompareToBuilder()
          .append(this.cluster, otherKey.getCluster())
          .append(this.userName, otherKey.getUserName())
          .append(this.appId, otherKey.getAppId())
          .toComparison();
    }
docs: Compares two AppKey objects on the basis of their cluster, userName, appId and encodedRunId
  @param other
  @return 0 if this cluster, userName, appId are equal to the other's
  cluster, userName, appId,
  1 if this cluster or userName or appId are less than the other's
  cluster, userName, appId,
  -1 if this cluster and userName and appId are greater the other's
  cluster, userName, appId