@Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    CheckpointV2 that = (CheckpointV2) o;

    return checkpointId.equals(that.checkpointId) &&
        Objects.equals(inputOffsets, that.inputOffsets) &&
        Objects.equals(stateCheckpointMarkers, that.stateCheckpointMarkers);
  }
Gets the state checkpoint markers for all stores for each configured state backend.

Note: We don't add this method to the {@link Checkpoint} interface since it is difficult
to implement it for {@link CheckpointV1} without changing the underlying serialization format -
the changelog SSP offsets are serialized in the same way as input offsets, and at
deserialization time we don't have enough information (e.g. configs) to decide whether a
particular entry is for an input SSP or a changelog SSP.

@return Map of state backend factory name to map of local state store names to state checkpoint markers
samza-api/src/main/java/org/apache/samza/checkpoint/CheckpointV2.java