public boolean hasSatisfiedHeartbeat() {
        if (isNew) {
            // New members can be expired even while awaiting join, so we check this first
            return false;
        } else {
            // Members that are awaiting a rebalance automatically satisfy expected heartbeats
            return isAwaitingJoin() || isAwaitingSync();
        }
    }
The heartbeat is always considered satisfied when an existing member has made a
successful join/sync group request during a rebalance.

@return true if heartbeat was satisfied; false otherwise.
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/classic/ClassicGroupMember.java