RouterWorkers: A Arte da Otimização em Cloudflare Workers

No ecossistema moderno de desenvolvimento, fomos condicionados a aceitar o "inchaço" como um mal necessário. Queremos um roteador para uma API simples? Instalamos uma biblioteca que traz consigo trezentas dependências, adiciona 2MB ao nosso bundle e consome preciosos milissegundos de inicialização.

Em ambientes de Edge Computing, como o Cloudflare Workers, onde cada milissegundo de Cold Start e cada byte de memória contam, essa negligência arquitetural é um pecado capital. Foi dessa insatisfação que nasceu o RouterWorkers.

O RouterWorkers não é apenas mais um roteador. É um manifesto contra o desperdício. Com um bundle minimalista de apenas 29KB e zero dependências externas, ele foi desenhado para ser transparente. No desenvolvimento de software, a melhor biblioteca é aquela que você esquece que existe porque ela simplesmente cumpre sua função sem degradar o sistema.

Quando você usa o RouterWorkers, você não está apenas roteando requisições; você está garantindo que sua aplicação suba instantaneamente em qualquer um dos mais de 300 data centers da Cloudflare ao redor do mundo.

Início Rápido: Sem Cerimônias

A beleza da simplicidade reflete-se na implementação. Não há necessidade de configurações complexas ou boilerplate infinito.

import { RouterWorkers } from 'routerworkers';
import type { Req, Res } from 'routerworkers';

export default {
    async fetch(request: Request): Promise<Response> {
        const app = new RouterWorkers(request);

        await app.get('/', (req: Req, res: Res) => {
            res.ok({ message: 'Hello World!' });
        });

        return app.resolve();
    }
};

O Problema do Cache Persistente

Um dos maiores desafios em arquiteturas distribuídas é a invalidação de cache. Por padrão, o cache da Cloudflare é persistente por URL. Se você faz um deploy com uma nova lógica de negócio, mas a rota /api/data está em cache, seu usuário continuará recebendo dados baseados no código antigo.

O RouterWorkers resolve isso através do Versionamento Automático por Deploy. Ao integrar-se com os metadados da Cloudflare, ele gera uma chave de cache única para cada versão do seu código.

Como funciona na prática:

// Configure o cache com o ID de versionamento automático do deploy
const config: ConfigWorker = {
    cache: {
        pathname: ['/data'],      
        maxage: '3600',           
        version: env.CF_VERSION_METADATA.id // Chave única por deploy!
    }
};

const app = new RouterWorkers(request, config);

Com essa abordagem, cada vez que você executa um wrangler deploy, o cache anterior é invalidado de forma transparente. Você tem a velocidade máxima da Cache API sem o medo de servir dados obsoletos após uma atualização crítica.

Consistência e Segurança sem Overhead

Validação de dados é outro ponto onde o desperdício costuma reinar. Bibliotecas de validação de schema costumam ser pesadas e complexas. No RouterWorkers, incluímos um validador built-in que oferece tipagem completa (TypeScript First-class) sem sacrificar a performance.

import { validate, schemas } from 'routerworkers';

await app.post('/users',
    validate({
        body: {
            name: { type: 'string', required: true, minLength: 3 },
            email: { type: 'email', required: true }
        }
    }),
    (req, res) => {
        // req.bodyJson já está tipado e validado aqui
        res.created(req.bodyJson);
    }
);

O RouterWorkers não sacrifica o poder em nome da leveza. Ele oferece um conjunto completo de ferramentas para APIs modernas:

  • Response Helpers: 14 métodos semânticos (res.ok, res.created, res.unauthorized, etc) que seguem rigorosamente os padrões HTTP.
  • Route Groups: Organize seu código com prefixos e middlewares compartilhados sem perder a legibilidade.
  • CORS Built-in: Implementação completa e segura, com modos específicos para desenvolvimento e produção.
  • Middlewares Globais e por Rota: Controle total sobre o ciclo de vida da requisição.

Conclusão: Por que usar?

Se você está cansado de frameworks que tentam ser tudo para todos e acabam entregando lentidão, o RouterWorkers é para você. Ele é focado em quem entende que, na web moderna, performance é um recurso, não um bônus.

A consistência de uma API robusta, a velocidade de uma integração nativa com o cache da Cloudflare e a segurança de um sistema de tipos rigoroso — tudo isso em menos de 30KB.

O projeto é open-source e está disponível no npm. Se a eficiência é uma prioridade no seu fluxo de trabalho, convido você a testar e, quem sabe, dar aquela estrela no GitHub.


Feito com foco em performance para Cloudflare Workers.

AGI, A Promessa da Ficção e o Medo da Imaginação

Uma reflexão filosófica sobre a utopia e a distopia prometidas pela Inteligência Artificial Geral.

Leia Mais »

Newsletter