Estou buscando conselhos sobre o enfileiramento de mensagens. Temos requisitos para que "trabalhos" sejam postados em uma fila de mensagens.
A sugestão original era apenas usar uma instância do SQL Server e processar mensagens a partir dela. Tudo o que li na internet sugere que o uso de um banco de dados para uma fila de mensagens não é uma solução escalável. Por esse motivo, foi sugerida a idéia de usar o RabbitMQ ou outro MQ de terceiros.
A outra coisa a levar em consideração é que o requisito para "processamento de trabalho" não será menor que 30 segundos; portanto, o processo que faz o trabalho pesquisará o banco de dados a cada 30 segundos. Para mim, isso não parece tão ruim e provavelmente funcionaria bem sem adicionar uma grande carga ao banco de dados.
Já temos um banco de dados em nossos clientes que poderíamos usar para isso, para que ele não adicione muito suporte extra necessário para nossos clientes, enquanto que se adicionássemos um MQ de terceiros, haveria suporte extra para a configuração de rede, etc. considerável, dado que há muitos usuários.
A outra opção que eu estava considerando era permitir que os usuários escolhessem entre eles. Se eles forem um usuário pequeno, a solução Sql Server ficará bem, mas se eles forem usuários maiores, permitiremos que eles configurem uma solução MQ de terceiros.
Não estou vendendo nenhuma solução, estou me perguntando se alguém tem algo que eu deva considerar ou aconselhar.