public static boolean supportsSkippingAssignment(short apiVersion) {
        return apiVersion >= 9;
    }
Starting from version 9 of the JoinGroup API, static members are able to
skip running the assignor based on the `SkipAssignment` field. We leverage
this to tell the leader that it is the leader of the group but by skipping
running the assignor while the group is in stable state.
Notes:
1) This allows the leader to continue monitoring metadata changes for the
group. Note that any metadata changes happening while the static leader is
down won't be noticed.
2) The assignors are not idempotent nor free from side effects. This is why
we skip entirely the assignment step as it could generate a different group
assignment which would be ignored by the group coordinator because the group
is the stable state.

Prior to version 9 of the JoinGroup API, we wanted to avoid current leader
performing trivial assignment while the group is in stable stage, because
the new assignment in leader's next sync call won't be broadcast by a stable group.
This could be guaranteed by always returning the old leader id so that the current
leader won't assume itself as a leader based on the returned message, since the new
member.id won't match returned leader id, therefore no assignment will be performed.

@param apiVersion The JoinGroupRequest api version.

@return whether the version supports skipping assignment.
clients/src/main/java/org/apache/kafka/common/requests/JoinGroupRequest.java