Cloudflare Workers permite executar código JavaScript (ou Rust/Wasm) na borda da rede, próximo ao usuário final. Isso reduz latência, melhora performance e simplifica a arquitetura ao eliminar servidores tradicionais. Em 2025, a plataforma oferece recursos avançados como KV Store, Durable Objects, Workers Sites e integração nativa com o Cloudflare Pages.
Por que usar Workers?
- Latência mínima, código roda em data centers globais, tipicamente < 10 ms.
- Escalabilidade automática, sem necessidade de provisionamento de instâncias.
- Modelo de pagamento por uso, cobrança baseada em solicitações e tempo de CPU.
- Integração com serviços Cloudflare, firewall, CDN, Argo, Images, etc.
- Suporte a múltiplas linguagens, JavaScript, TypeScript, Rust, C, Go via WebAssembly.
Arquitetura básica de um Worker
- Script, função
fetchque recebeRequeste devolveResponse. - Roteamento, definido no
wrangler.tomlou via Workers Routes. - Armazenamento opcional, KV ou Durable Objects para estado persistente.
- Deploy,
wrangler publishou integração CI/CD.
Fluxo de uma requisição
O caminho de uma requisição é direto: o usuário acessa via HTTPS o Cloudflare Edge, que executa o Worker Script no data center mais próximo. O Worker lê e escreve no KV Store, comunica-se com Durable Objects quando precisa de estado consistente e devolve a resposta ao usuário. Em paralelo, o Edge serve conteúdo já cacheado pelo CDN sempre que possível, evitando reexecução desnecessária.
Configurando o projeto com Wrangler
## Instalar Wrangler (CLI oficial) npm i -g @cloudflare/wrangler ## Inicializar projeto wrangler init my-worker --type=javascript ## Editar wrangler.toml (exemplo)
Exemplo mínimo de wrangler.toml:
name = "my-worker" type = "javascript" account_id = "YOUR_ACCOUNT_ID" workers_dev = true compatibility_date = "2025-01-01" [vars] API_KEY = "${API_KEY}" [[kv_namespaces]] binding = "MY_KV" id = "YOUR_KV_ID"
Script básico (3 linhas)
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }); async function handleRequest(request) { return new Response('Olá do Cloudflare Workers!', {status: 200}); }
Esse código responde “Olá do Cloudflare Workers!” a qualquer requisição.
Roteamento de caminhos
No wrangler.toml adicione rotas para domínios específicos:
routes = ["example.com/api/*", "api.example.com/*"]
Agora o Worker será acionado apenas para URLs que correspondam ao padrão.
Utilizando KV Store (exemplo de 2 linhas)
await MY_KV.put('visitas', '1'); let count = await MY_KV.get('visitas');
O KV oferece latência de milissegundos e alta disponibilidade global.
Durable Objects, estado consistente por chave (exemplo 3 linhas)
class Counter { constructor(state) { this.state = state; } async fetch(request) { let value = await this.state.storage.get('count') || 0; await this.state.storage.put('count', ++value); return new Response(String(value)); } } addEventListener('fetch', event => event.respondWith(handleRequest(event.request)));
Durable Objects mantêm estado síncrono entre instâncias, ideal para contadores, salas de chat, etc.
Segurança e boas-práticas
- Validação de entrada, nunca confie em parâmetros de URL; use
URLSearchParamse sanitize. - Limite de CPU, Workers têm limite de 50 ms por solicitação; evite loops longos.
- Uso de variáveis de ambiente, armazene segredos em
wrangler secret putao invés de hard-code. - CORS, configure cabeçalhos adequados para APIs públicas.
- Rate limiting, combine com Cloudflare Firewall Rules para proteger contra abuso.
Testando localmente
wrangler dev
O comando inicia um servidor local que simula o ambiente Edge.
Deploy via CI/CD (exemplo GitHub Actions), 5 linhas
name: Deploy Workers on: push jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: npm i -g @cloudflare/wrangler - run: wrangler publish env: CF_API_TOKEN: $
Observabilidade
- Logs,
wrangler tailexibe logs em tempo real. - Metrics, Cloudflare Analytics mostra latência, erros, tráfego.
- Error Tracking, use
try/catche envie detalhes a Sentry ou a Workers KV.
Checklist rápido
- Instalar Wrangler CLI.
- Configurar
wrangler.tomlcom account_id e KV/DO. - Escrever script
fetchhandler. - Definir rotas ou usar
workers_dev. - Testar localmente com
wrangler dev. - Configurar secrets via
wrangler secret. - Deploy com
wrangler publishou CI. - Monitorar logs (
wrangler tail). - Aplicar regras de firewall para segurança.
Conclusão
Cloudflare Workers oferece computação ultra-rápida na borda, permitindo criar APIs, sites estáticos, transformações de imagens e lógica de negócios sem servidores. Ao seguir as boas-práticas de segurança, usar KV ou Durable Objects para estado e integrar com pipelines CI/CD, você pode escalar aplicações globalmente com custos previsíveis e alta performance.
Já desenvolveu um Worker? Compartilhe suas dicas e desafios nos comentários!
Leia também
- WebAssembly no edge: por que iniciar rápido e isolado importa
- Cloudflare Workers em produção: o que muda depois do hello world
- Desenvolvendo aplicações serverless com AWS Lambda e Cloudflare Workers em 2025
- Desenvolvimento Web Moderno em 2025: Tendências, Ferramentas e Estratégias Inovadoras
- Cloudflare Durable Objects: estado consistente no edge — o que realmente muda
- Cloudflare Workers vs Pages: a diferença que importa antes de você escolher
