Melhor forma de redirecionar usuário após tempo limite em chatbot

Tenho um chatbot em TypeScript onde preciso implementar a seguinte lógica:

  • Na primeira mensagem do usuário, ele recebe uma lista de abas para escolher.
  • Se ele não selecionar uma aba dentro de um tempo limite, deve ser automaticamente redirecionado para uma aba padrão.

Atualmente, estou usando um setTimeout para agendar o redirecionamento e um AbortController para cancelar caso o usuário escolha uma aba antes do tempo limite. No entanto, conforme o fluxo de usuários aumentou, comecei a notar bugs e lentidão nesse processo.

Diante disso, estou considerando mover essa lógica para uma fila (atualmente utilizo RabbitMQ no projeto).

Essa seria a melhor abordagem? Existe uma solução mais eficiente para lidar com isso em alta escala?

Agradeço!

Seria bom dizer onde o chatbot foi construído, se estiver utilizando Next.js não tem o pq da lentidão, se você colocar no lado do client-side.

Se estar colocando isso no lado do server-side acredito que não seja uma boa escolha, até daria para fazer, salvando um timestamp no banco de dados e verificar com o atual.

Estou desenvolvendo com Vue.js, mas preciso garantir que essa lógica não fique no lado do cliente para evitar qualquer possibilidade de manipulação pelo usuário. Também preciso garantir que, se o servidor tiver algum problema, os dados dos usuários não se percam e eles possam ser redirecionados sem complicação depois de uma queda.
O que seria a manipulação que o usuário iria fazer? Você pode salvar o progresso no localstorage caso perca contato com o servidor, mesmo que ele atualize a página o progresso vai estar lá. Se entender o que realmente o que ele iria perder, não consigo pensar em algo.