queue-advisor-pricing-app
Compare SQS, Kinesis, EventBridge e MSK por custo e encaixe antes de escolher a fila
git clone https://github.com/fernando-moretes/app-queue-advisor-pricing.gitOuvir guia
gerado ao ouvirGerado apenas no primeiro play
Com tecnologia Amazon Polly + OmniVoice
QueueAdvisor é uma aplicação Next.js que compara SQS, Kinesis, EventBridge e MSK lado a lado — custo estimado e encaixe técnico — a partir da sua vazão e da sua retenção, para que a escolha do serviço de mensageria seja feita com número na mesa e não com preferência de quem já usou um deles.
Por que este repositório existe
A pergunta que mais ouvi em desenho de arquitetura não foi "qual fila usar?" — foi "quanto vai custar isso daqui a um ano, quando o volume for dez vezes maior?". Os quatro serviços de mensageria da AWS respondem a essa pergunta com modelos de cobrança diferentes, e é aí que a comparação de cabeça falha.
SQS cobra por milhão de requisições, com cada 64 KB de payload contando como uma requisição. Kinesis Data Streams cobra por shard-hora (ou por GB ingerido no modo on-demand) mais retenção estendida acima de 24 horas. EventBridge cobra por milhão de eventos publicados no barramento customizado. MSK cobra por broker-hora e por GB-mês de armazenamento, esteja o cluster ocupado ou não. Quatro unidades, quatro curvas: uma é linear com o número de mensagens, outra é degrau com o número de shards, outra é quase fixa independente do tráfego.
Eu já vi decisão tomada com base no preço de uma planilha de três meses atrás — e a conta chegar diferente porque ninguém contou o tamanho médio da mensagem. Este repositório existe para transformar essa conta num formulário: você informa vazão, tamanho de mensagem e retenção, a aplicação aplica o modelo de preço de cada serviço e mostra os quatro resultados na mesma tela. O objetivo não é substituir a AWS Pricing Calculator; é responder, em menos de um minuto, em que faixa de volume cada serviço deixa de fazer sentido.
O que a ferramenta entrega
Como o fluxo funciona
Da entrada do arquiteto até a recomendação: tudo roda no cliente, a Vercel só serve os arquivos.
- Formulário · msg/s · KB · dias
- Modelo de preço · TypeScript, por serviço
- Regras de encaixe · ordenação · replay · fan-out
- Tabela comparativa · custo/mês + veredito
- SQS · por milhão de req
- Kinesis · shard-hora / GB
- EventBridge · por milhão de eventos
- MSK · broker-hora + GB-mês
Como a comparação é construída
A aplicação é um formulário e um modelo de cálculo em TypeScript. Não há chamada à API de preços da AWS em tempo de execução — as tarifas são constantes no código, o que mantém a ferramenta estática, rápida e sem credencial, com o custo de manutenção que vem junto: alguém precisa atualizar a constante quando a AWS muda a tabela.
Entradas: mensagens por segundo, tamanho médio da mensagem em KB, dias de retenção e, para o encaixe, o que a carga exige — ordenação estrita, replay de mensagens antigas, mais de um consumidor lendo o mesmo evento.
Custo: cada serviço tem sua própria função. Para SQS, o modelo converte vazão em requisições por mês e arredonda o payload para cima em blocos de 64 KB — é esse arredondamento que faz mensagem de 70 KB custar o dobro de mensagem de 64 KB. Para Kinesis, calcula o número de shards pelo maior entre 1 MB/s de escrita e 1.000 registros/s por shard, multiplica por shard-hora e soma a retenção acima de 24 h. Para EventBridge, é evento por milhão, com o limite de payload de 256 KB como restrição, não como custo. Para MSK, é broker-hora vezes o número de brokers mais GB-mês de armazenamento — o custo fixo que domina em volume baixo.
Encaixe: regras simples marcam o que cada serviço não faz. SQS padrão não garante ordem; SQS FIFO garante, mas com teto de vazão por grupo. Kinesis e MSK permitem replay dentro da retenção; SQS não. EventBridge entrega para vários alvos por regra; SQS entrega para um consumidor por mensagem.
O resultado é uma tabela: quatro colunas, custo mensal estimado e sinalização de encaixe. A tabela não decide por você — ela remove da conversa a parte que é aritmética.
Instalar e usar
- 1
Use a versão publicada ou clone
Para uma comparação rápida, abra
https://queue.moretes.com— não precisa instalar nada. Para alterar tarifas ou regras, clonegithub.com/fernando-moretes/app-queue-advisor-pricing. - 2
Instale as dependências com pnpm
O projeto usa
pnpm. Rodepnpm installna raiz; Node 20 ou superior é o que o Next.js atual espera. - 3
Suba o servidor de desenvolvimento
pnpm devabre a aplicação emhttp://localhost:3000. Não há variável de ambiente nem credencial AWS envolvida. - 4
Informe o cenário
Preencha vazão em mensagens por segundo, tamanho médio em KB e retenção em dias. Marque os requisitos — ordenação, replay, múltiplos consumidores — se a carga exigir.
- 5
Leia a tabela e teste o dobro
Compare o custo mensal e as bandeiras de encaixe. Depois dobre a vazão e veja qual serviço muda de degrau — é aí que a decisão fica visível.
- 6
Ajuste uma tarifa e abra um PR
Se a AWS mudou um preço, edite a constante do serviço no modelo, rode
pnpm buildpara conferir o typecheck e abra um pull request com a URL da página de preços no corpo.
git clone https://github.com/fernando-moretes/app-queue-advisor-pricing.git
cd app-queue-advisor-pricing
pnpm install
pnpm dev # http://localhost:3000
# antes de abrir PR / before opening a PR
pnpm buildEstimativa, não fatura
As tarifas no código são as públicas de uma região e de uma data; a AWS muda tabela sem aviso e o free tier, o Savings Plan e o tráfego entre AZs não entram na conta. Use o resultado para eliminar opções e ordenar as que sobram — feche o número final na AWS Pricing Calculator com a região e a conta reais.
Como ler o resultado sem se enganar
Três coisas aprendi usando esta ferramenta em revisão de arquitetura.
O custo mais baixo raramente é a resposta. Em 100 mensagens por segundo com payload de 4 KB, SQS costuma sair mais barato que qualquer outro — e é a escolha errada se você precisa reprocessar as últimas 24 horas depois de um deploy quebrado. A coluna de encaixe existe para isso: um serviço marcado como sem replay não deveria ganhar por preço.
O tamanho da mensagem importa mais que a vazão. O modelo do SQS arredonda para blocos de 64 KB; o do Kinesis conta shards por MB/s. Uma carga de 50 mensagens por segundo com 200 KB cada custa, em requisições SQS, o mesmo que 200 mensagens por segundo de 50 KB. Quem só informa "mensagens por segundo" subestima a conta.
Custo fixo vira vantagem em volume alto. MSK parece caro em 10 mensagens por segundo porque o broker-hora não sabe se está ocioso. Em 20.000 mensagens por segundo com retenção de 7 dias, a mesma conta fixa fica atrás do Kinesis on-demand — e é aí que vale ter os quatro na mesma tela, com o mesmo cenário, e não quatro estimativas feitas em dias diferentes.
A ferramenta não substitui o desenho de arquitetura. Ela substitui a parte do desenho que era planilha.
Perguntas frequentes
A ferramenta consulta a API de preços da AWS?
Não. As tarifas são constantes no código TypeScript, o que mantém a aplicação estática e sem credencial. O custo disso é manutenção manual quando a AWS muda a tabela — por isso o repositório é público e aceita PR.
Por que MSK aparece tão caro em volume baixo?
Porque MSK cobra por broker-hora e por GB-mês, esteja o cluster ocupado ou não. Em 10 mensagens por segundo você paga o cluster inteiro para quase nada. A curva só cruza a dos serviços por uso em vazão alta com retenção longa.
Posso usar o resultado como orçamento oficial?
Não. Use para eliminar opções e ordenar as restantes. Free tier, Savings Plans, tráfego entre AZs e diferenças por região ficam fora do modelo. O número final sai da AWS Pricing Calculator com a região e a conta reais.
O README ainda aponta para `fernandofatech/queue-advisor-pricing-app`. Qual é o repositório certo?
O atual é fernando-moretes/app-queue-advisor-pricing; o antigo redireciona. Clone pelo nome novo para não depender do redirecionamento do GitHub.
Referências
Quando usar
Use o QueueAdvisor quando: você está entre dois ou mais serviços de mensageria da AWS, tem uma estimativa honesta de vazão, tamanho de mensagem e retenção, e precisa mostrar em reunião por que uma opção sai da mesa. Não use como orçamento final nem como substituto do desenho — ele não sabe sua região, seu Savings Plan nem quem opera o cluster às 2h da manhã. Ele responde uma pergunta só, e responde bem: em que faixa de volume cada serviço deixa de fazer sentido.
Deep dives de arquitetura, AWS, IA e mercado — direto no seu email. Grátis.
Sem spam · cancele quando quiser