DevOps

    n8n Self-Hosted em Queue Mode: Automação Que Aguenta Escala de Verdade

    n8n single-instance trava sob volume. Queue mode com Redis e workers resolve. Aprenda quando migrar e como estruturar n8n self-hosted para produção real.

    2026-03-0511 minEquipe MaxVision
    CLIP_001 · DJI O4FPV · 4K · 60FPS

    Uma instância única do n8n consegue fazer muito — até o dia em que não consegue mais. O sinal costuma ser sutil no início: workflows que antes completavam em segundos começam a demorar, execuções se acumulam na fila, e em dias de pico o processo consome toda a memória disponível e reinicia sozinho. Não é bug do n8n. É o comportamento esperado de qualquer sistema de processos concorrentes rodando em processo único sem separação entre agendamento e execução. A solução existe, está documentada e muda completamente o perfil de capacidade da operação: o queue mode.

    Resumo rápido: O n8n em modo padrão roda tudo em um processo único — o agendador, a interface web e a execução de workflows competem pelos mesmos recursos. Queue mode separa essas responsabilidades: um processo main coordena e expõe a interface, workers dedicados executam os jobs de uma fila Redis, e um banco Postgres dedicado persiste tudo. O resultado é escala horizontal real: adicionar workers aumenta a capacidade de processamento sem tocar no core.

    Diagrama de arquitetura do n8n em queue mode com main, workers, Redis e Postgres

    Por que o n8n single-instance tem limite

    O n8n em instalação padrão roda como processo Node.js único. Quando um webhook chega, quando um agendamento dispara ou quando você executa manualmente um workflow, o mesmo processo que serve a interface web é o que executa o workflow. Para volumes baixos a moderados, isso funciona bem. O problema aparece quando múltiplos workflows pesados rodam em paralelo.

    Node.js tem um event loop single-threaded. Operações de I/O são não-bloqueantes por design, mas processamento intensivo — transformar grandes volumes de dados, fazer múltiplas chamadas HTTP em série, processar payloads grandes — ocupa o event loop e atrasa tudo mais. Em paralelo, a memória se fragmenta entre execuções concorrentes e o processo começa a ficar instável.

    O segundo problema é a falta de isolamento de falhas. Em single-instance, um workflow que consome memória excessiva afeta todos os outros. Um reinício do processo por OOM (out of memory) interrompe todas as execuções em andamento sem possibilidade de retomada.

    O que muda no queue mode

    A separação de responsabilidades é a mudança central. Em queue mode, o n8n opera com pelo menos dois tipos de processo distintos:

    Main: responsável por receber webhooks, servir a interface web, agendamento e criação de jobs na fila. Não executa workflows diretamente.

    Workers: processos dedicados à execução de workflows. Consomem jobs da fila Redis, executam e reportam o resultado. Podem existir múltiplos workers rodando em paralelo, em containers separados ou em servidores diferentes.

    Redis funciona como fila. O main publica jobs; os workers consomem. Redis é eficiente para esse padrão de pub/sub e oferece persistência configurável para não perder jobs em caso de reinício.

    Postgres armazena o estado de execução de forma durável. Workflows versionados, histórico de execuções, credenciais criptografadas — tudo em banco relacional com transações garantidas, não em SQLite como na instalação básica.

    A consequência prática: se você precisa de mais throughput, adiciona workers. Se o main precisar reiniciar para uma atualização, os workers continuam processando os jobs que já estão em execução. Um worker que falha não afeta os outros.

    Tabela: n8n cloud vs self-hosted single vs self-hosted queue mode

    Dimensãon8n CloudSelf-Hosted SingleSelf-Hosted Queue Mode
    Setup inicialMinutos1-2 horas4-8 horas
    Custo fixo mensalPlano pago (escala por execuções)Custo do servidorCusto de 2+ servidores/containers
    Escala horizontalGerenciada pelo provedorNão disponívelSim — adicionar workers
    Isolamento de falhaGerenciadoProcesso único — falha afeta tudoWorkers independentes
    Controle de dadosDados no servidor n8nTotal controleTotal controle
    Workflows em gitExportação manualPossível via APIIntegrado ao fluxo DevOps
    Execuções simultâneasLimitado pelo planoLimitado pelo processoConfigurável por número de workers
    RBAC por workspaceDisponível (Enterprise)Não nativoConfigurável com Enterprise ou workarounds
    Customização de ambienteNão disponívelTotalTotal
    Overhead operacionalBaixoMédioAlto

    Quando migrar do n8n cloud ou single para queue mode

    A migração faz sentido quando alguns sinais aparecem de forma consistente, não apenas em picos isolados:

    Execuções que se acumulam na fila interna sem serem processadas em tempo razoável. Workflows que competem por recursos e atrasam uns aos outros. O processo n8n reiniciando por OOM ou erro não tratado durante picos. Necessidade de manter execuções de diferentes clientes ou contextos isoladas (multi-tenant básico via workspace separado). Volume de execuções mensais que torna o custo do n8n Cloud maior que o custo de infraestrutura própria.

    Para operações que processam dados sensíveis — documentos de clientes, registros financeiros, dados de saúde — o self-hosted em qualquer modo elimina a dúvida sobre onde os dados transitam. Em queue mode, você tem controle total sobre o Redis e o Postgres, incluindo criptografia em repouso e isolamento de rede.

    Arquitetura de referência para produção

    Uma arquitetura funcional de produção usa os seguintes componentes:

    Traefik ou Caddy como reverse proxy na frente do main, com SSL automático via Let's Encrypt. O main fica exposto na porta 443; Redis e Postgres ficam em rede interna sem exposição externa.

    Redis em modo standalone para a maioria das operações. Se a confiabilidade da fila for crítica, Redis Sentinel ou Redis Cluster adicionam failover, mas aumentam a complexidade. Para a maior parte das operações, backup frequente do Redis é suficiente.

    Postgres como banco principal do n8n. Um banco dedicado para o n8n evita que outras aplicações interfiram com as consultas do n8n. Configure backups automáticos com Restic ou pg_dump periódico para destino offsite.

    Dois ou mais workers em containers separados. O número de workers define o paralelismo máximo. Cada worker processa um job por vez (configurável). Três workers = até três workflows simultâneos em execução real, sem contenção de recursos.

    Em Docker Compose, a separação é declarativa: serviço n8n-main, serviço n8n-worker (com scale: 3 para três instâncias), Redis e Postgres. A variável de ambiente EXECUTIONS_MODE=queue ativa o modo. QUEUE_BULL_REDIS_HOST aponta para o Redis. Resto da configuração segue a documentação oficial.

    Workflows versionados em git com RBAC

    Queue mode é a base. O que eleva o nível operacional é tratar os workflows do n8n como código: versionados em git, com processo de revisão antes de ir para produção.

    O n8n tem API REST que permite exportar e importar workflows como JSON. Um fluxo básico de GitOps para n8n funciona assim:

    Desenvolvimento acontece em uma instância de staging separada. Quando um workflow está pronto, é exportado via API como JSON e commitado no repositório. O merge para a branch principal dispara um pipeline CI que importa o workflow via API na instância de produção.

    Esse fluxo resolve dois problemas recorrentes: rastreabilidade ("quem mudou esse workflow e quando?") e recuperação ("qual era a versão anterior que funcionava?"). Em operações com múltiplos workflows críticos, um workflow quebrado sem possibilidade de rollback pode paralisar processos inteiros.

    O RBAC (controle de acesso baseado em papel) do n8n Enterprise permite separar quem pode criar workflows, quem pode ativá-los em produção e quem apenas visualiza execuções. Para operações onde diferentes times operam diferentes workflows, essa separação é necessária para evitar que uma mudança em um workflow de um time afete o de outro. Quando o departamento de DevOps da MaxVision estrutura um n8n em queue mode, o controle de acesso e o versionamento em git fazem parte da entrega desde o primeiro deploy.

    Para operações que não têm licença Enterprise, o workaround mais comum é ter instâncias separadas por contexto ou por time, com acesso compartilhado apenas ao que for comum.

    Autoscaling: quando e como

    Autoscaling real — adicionar workers automaticamente sob demanda e removê-los quando o volume cai — exige orquestração de containers: Kubernetes com HPA (Horizontal Pod Autoscaler) ou Docker Swarm com scaling baseado em métricas.

    Para a maioria das operações, autoscaling não é necessário no início. Um número fixo de workers dimensionado para o pico esperado é mais simples de operar e menos sujeito a surpresas. Se os picos são previsíveis (processamento noturno, campanhas específicas), o scaling manual ou agendado — aumentar workers antes do pico e reduzir depois — é suficiente.

    Quando o volume é genuinamente imprevisível e os picos têm custo operacional real em espera de execução, o autoscaling com Kubernetes faz sentido. A configuração usa KEDA (Kubernetes Event-Driven Autoscaling) com Redis como trigger: quando a fila ultrapassa N jobs pendentes, novos pods worker são criados automaticamente.

    Esse nível de sofisticação raramente é o ponto de partida certo. Normalmente, a operação cresce até um ponto onde o scaling manual vira gargalo operacional, e é aí que a migração para Kubernetes e KEDA se justifica pelo esforço.

    Monitoramento da fila e dos workers

    Um aspecto que costuma ser negligenciado em deployments de queue mode é a visibilidade do estado da fila. Em single-instance, você vê o histórico de execuções na interface do n8n e tem uma ideia do throughput. Em queue mode, a fila do Redis pode acumular jobs sem que isso fique óbvio na interface.

    O Bull Dashboard — ou o BullMQ Board, dependendo da versão — é uma interface web que mostra o estado da fila em tempo real: jobs ativos, aguardando, concluídos, falhos. Em produção, expor essa interface de forma restrita (autenticação básica ou VPN) dá visibilidade operacional sem custo adicional.

    Para alertas, integrar Prometheus com redis_exporter e n8n com métricas customizadas permite criar alertas para "fila acima de N jobs por mais de X minutos" — sinal de que os workers estão sobrecarregados ou que um job está bloqueando a fila.

    Fluxo de execução do n8n em queue mode com workers consumindo fila Redis e persistindo no Postgres

    A migração do n8n cloud para self-hosted queue mode

    A migração em si envolve: exportar todos os workflows e credenciais da instância cloud, preparar a infraestrutura self-hosted com queue mode, importar os workflows e reconfigurar credenciais (credenciais são criptografadas e não migram diretamente — precisam ser reinseridas).

    O ponto de maior atenção é o período de transição: webhooks apontando para a URL do n8n cloud precisam ser atualizados para a URL self-hosted. Se houver integrações externas que chamam esses webhooks, o processo de atualização precisa ser coordenado para minimizar interrupção.

    Para operações críticas, a estratégia recomendada é rodar as duas instâncias em paralelo por um período: cloud recebendo os webhooks existentes, self-hosted recebendo os novos. Quando a confiança no self-hosted estiver estabelecida, migra os webhooks restantes e encerra o cloud.

    Perguntas Frequentes

    Quantos workers são necessários para começar?

    Para a maioria das operações que justificam queue mode, dois workers já oferecem isolamento de falha e paralelismo básico. Três a cinco workers cobrem operações com volume médio-alto. O número ideal depende do tempo médio de execução dos workflows e do paralelismo desejado. Comece com dois e monitore a profundidade da fila para calibrar.

    Redis precisa de configuração especial para funcionar com n8n?

    A configuração padrão do Redis funciona para a maioria dos casos. O que vale configurar é persistência (AOF ou RDB) para não perder jobs na fila em caso de reinício, e maxmemory-policy para evitar que o Redis consuma memória sem limite. Para queue mode do n8n, Redis com 512MB a 1GB é suficiente para volumes altos.

    É possível usar queue mode com SQLite em vez de Postgres?

    Não. O n8n em queue mode exige Postgres. O SQLite não suporta o nível de concorrência necessário para múltiplos workers acessando o banco simultaneamente. A migração de SQLite para Postgres é necessária antes de ativar o queue mode.

    Queue mode resolve o problema de workflows que ficam presos infinitamente?

    Parcialmente. Workers têm timeout configurável. Se um workflow ultrapassar o timeout, o job é marcado como falho e o worker fica disponível para o próximo. O que queue mode não resolve é a lógica interna do workflow — um loop infinito dentro de um workflow ainda vai consumir o worker até o timeout. Para esses casos, o monitoramento da duração de execução é necessário para detectar e interromper execuções anômalas.

    Vale a pena ir direto para Kubernetes ou começar com Docker Compose?

    Para a grande maioria das operações que migraram de single-instance ou cloud, Docker Compose é o ponto de partida correto. É mais simples de operar, mais fácil de debugar e cobre bem o caso de uso de dois a cinco workers em um único servidor ou conjunto pequeno de servidores. Kubernetes faz sentido quando você já tem o cluster, quando o autoscaling real é necessário ou quando a operação exige alta disponibilidade com failover automático de workers.

    Conclusão

    O n8n single-instance é uma ferramenta excelente para começar e para operações de volume baixo a moderado. Quando o volume cresce, a limitação não é do n8n — é da arquitetura de processo único que não foi projetada para escala horizontal. Queue mode resolve exatamente esse problema: separa responsabilidades, permite adicionar capacidade sem tocar no core e torna a operação resiliente a falha de componentes individuais.

    O investimento em configuração é real — algumas horas para um ambiente funcional, mais tempo para workflows em git e monitoramento adequado. Mas é um investimento que o próprio volume justifica: quando a fila começa a travar em produção, o custo de não ter queue mode fica muito claro.

    Estruturar n8n em queue mode do jeito certo — workers dimensionados, Redis com persistência, Postgres dedicado, workflows em git e fila monitorada — é o tipo de trabalho que o departamento de DevOps da MaxVision já opera em produção. Se quiser avaliar o que faz sentido para o seu volume atual e projeção de crescimento, comece por aqui.

    Posts Relacionados

    TAGS
    • DevOps
    • n8n
    • Automação
    • Self-Hosted
    • Infraestrutura
    Fale agora pelo WhatsApp