docs: private void probe(ImmutableMember member) {
      LOGGER.trace("{} - Probing {}", localMember.id(), member);
      bootstrapService.getMessagingService().sendAndReceive(
          member.address(), MEMBERSHIP_PROBE, SERIALIZER.encode(Pair.of(localMember.copy(), member)), false, config.getProbeTimeout())
          .whenCompleteAsync((response, error) -> {
            if (error == null) {
              updateState(SERIALIZER.decode(response));
            } else {
              LOGGER.debug("{} - Failed to probe {}", this.localMember.id(), member, error);
              // Verify that the local member term has not changed and request probes from peers.
              SwimMember swimMember = members.get(member.id());
              if (swimMember != null && swimMember.getIncarnationNumber() == member.incarnationNumber()) {
                requestProbes(swimMember.copy());
              }
            }
          }, swimScheduler);
    }