docs: def pick_synchronous_standby(self, cluster):
          """Finds the best candidate to be the synchronous standby.
  
          Current synchronous standby is always preferred, unless it has disconnected or does not want to be a
          synchronous standby any longer.
  
          :returns tuple of candidate name or None, and bool showing if the member is the active synchronous standby.
          """
          current = cluster.sync.sync_standby
          current = current.lower() if current else current
          members = {m.name.lower(): m for m in cluster.members}
          candidates = []
          # Pick candidates based on who has flushed WAL farthest.
          # TODO: for synchronous_commit = remote_write we actually want to order on write_location
          for app_name, state, sync_state in self.query(
                  "SELECT pg_catalog.lower(application_name), state, sync_state"
                  " FROM pg_catalog.pg_stat_replication"
                  " ORDER BY flush_{0} DESC".format(self.lsn_name)):
              member = members.get(app_name)
              if state != 'streaming' or not member or member.tags.get('nosync', False):
                  continue
              if sync_state == 'sync':
                  return app_name, True
              if sync_state == 'potential' and app_name == current:
                  # Prefer current even if not the best one any more to avoid indecisivness and spurious swaps.
                  return current, False
              if sync_state in ('async', 'potential'):
                  candidates.append(app_name)
  
          if candidates:
              return candidates[0], False
          return None, False