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

        CoordinatorResult<?, ?> that = (CoordinatorResult<?, ?>) o;

        if (!Objects.equals(records, that.records)) return false;
        if (!Objects.equals(response, that.response)) return false;
        if (!Objects.equals(replayRecords, that.replayRecords)) return false;
        if (!Objects.equals(isAtomic, that.isAtomic)) return false;
        return Objects.equals(appendFuture, that.appendFuture);
    }
@Test
    public void testEquals() {
        CoordinatorResult<String, CoordinatorRecord> result1 = new CoordinatorResult<>(Collections.emptyList(), "response");
        CoordinatorResult<String, CoordinatorRecord> result2 = new CoordinatorResult<>(Collections.emptyList(), "response");
        assertEquals(result1, result2);
    }