Help! (nodejs, redis, queue)
Bom, estou com uma task para realizar e não sei o melhor jeito de fazer, vou descrever e falar o que pensei para realizar.
SITUAÇÃO PROBLEMA
O meu sistema tem uma tabela de usuário e cada usuário pode ter N contatos (uso o telefone para evitar duplicidade (pk)). Quando um novo usuário é criado preciso verificar na lista de contatos dos usuários para ver se alguém tem esse novo usuário adicionado na sua lista de contado. Caso tenha, preciso transformar o contado em uma relação de amizade (igual rede social). Ai começa a "task", além de pesquisar quem tem esse contato, preciso enviar e-mail para eles enviando que o contato agora está na plataforma e criar notificações para serem vistar no sistema.
MINHA POSSÍVEL SOLUÇÃO
Pensei em jogar isso para uma fila e rodar em background pois pode levar um certo tempo para ser realizado, utilizando eventos + nestjs + bull + redis.
Eu iria disparar um evento, pois isso vai impactar em algumas partes do sistema, um subscriber adicionaria na queue (bull + redis) e depois eu rodaria um background job.
O que acham ? alguem teria uma sugestão melhor e mais performática? É necessário a utilização de redis ou um node-cache daria conta ?