@VisibleForTesting
    public Mono<Long> fetchGroupMessageSequenceId(Long groupId) {
        if (redisClientManager == null) {
            return Mono.empty();
        }
        ByteBuf buffer = PooledByteBufAllocator.DEFAULT.directBuffer(Long.BYTES);
        try {
            buffer.writeLong(groupId);
        } catch (Exception e) {
            buffer.release();
            return Mono.error(e);
        }
        return redisClientManager
                .hincr(groupId, RedisEntryIdConst.KEY_GROUP_MESSAGE_SEQUENCE_ID_BUFFER, buffer);
    }
@implNote If the client application detects that the sequence ID goes backward, it should
          delete the existent cache for the sequence ID, and cache and use the new sequence
          ID so that the client application can still work fine.
          <p>
          This is an expected behavior for client applications to suffer from data loss in
          Redis due to any reason.
turms-service/src/main/java/im/turms/service/domain/message/service/MessageService.java