Skip to content

Ter o SQS disponível de modo global #932

Description

@TiagoGouvea

Qual tipo de recurso?

Funcionalidade

Qual a motivação para a solicitação?

Na V2 o SQS quando ativo funciona por fila por instância.

O ideal seria ter como fazer tal como no Rabbit, que ao ativar no modo global, já cria as filas todas e depois alimenta apenas elas, ao invés das filas das instâncias.

Na maneira atual, ao ativar o SQS é preciso "ir" na AWS e criar as filas manualmente (ou via código) para cada instância, e perde a praticidade de ter todas as mensagens em uma fila só (por evento).

Como o recurso deve ser desenvolvido?

Até pensei em jogar o código do RabbitmqController e do SQSController no GPT e falar "faz funcionar o global ai pro SQS", mas acho melhor alguém fazer a coisa com mais atenção. :)

Activity

  1. MatanMaimon commented on Feb 5, 2025

    @MatanMaimon

    would be great! i need it too

    in code i see the sqs.controller have this initQueues function:

      public async initQueues(instanceName: string, events: string[]) {
        if (!events || !events.length) return;
    
        const queues = events.map((event) => {
          return `${event.replace(/_/g, '_').toLowerCase()}`;
        });
    
        queues.forEach((event) => {
          const queueName = `${instanceName}_${event}.fifo`;
    
          this.sqs.createQueue(
            {
              QueueName: queueName,
              Attributes: {
                FifoQueue: 'true',
              },
            },
            (err, data) => {
              if (err) {
                this.logger.error(`Error creating queue ${queueName}: ${err.message}`);
              } else {
                this.logger.info(`Queue ${queueName} created: ${data.QueueUrl}`);
              }
            },
          );
        });
      }
    

    but it doesn't seems like this function was called from anywhere 😕

  2. edsonjuniordev commented on Jan 25, 2026

    @edsonjuniordev

    Fala, pessoal!

    Também estava enfrentando esse problema e, investigando melhor, vi que ele já foi corrigido nesta PR e passou a valer a partir da versão v2.3.3.

    No entanto, para que a configuração funcione corretamente, não basta apenas definir a flag SQS_ENABLED.
    É necessário também habilitar a flag SQS_GLOBAL_ENABLED.

    Além disso:

    • É possível definir um prefixo para o nome das filas usando GLOBAL_PREFIX_NAME;
    • Você escolhe quais eventos terão filas criadas por meio de flags específicas, como por exemplo SQS_GLOBAL_MESSAGES_UPSERT.

    Todas as opções de configuração relacionadas ao SQS estão documentadas aqui

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions