Cloudflare Workers: Computação Edge e Serverless na Borda da Rede

O que é Cloudflare Workers?
Cloudflare Workers é uma plataforma de computação serverless que executa seu código na borda da rede (edge computing). Diferente de funções Lambda da AWS ou Cloud Functions do Google Cloud, que executam em regiões centralizadas, os Workers são implantados automaticamente em mais de 330 data centers ao redor do mundo.
Isso significa que quando um usuário na Austrália acessa sua aplicação, o código executa em um servidor na Austrália — não em Virginia (EUA) ou São Paulo. O resultado? Latência drasticamente reduzida e experiência do usuário muito superior.
Arquitetura e Funcionamento
Cada Worker é essencialmente uma função JavaScript (ou WebAssembly) que roda no runtime V8 da Google. Quando uma requisição HTTP chega, o Worker mais próximo geograficamente do usuário é acionado para processá-la. O ciclo de vida de um Worker é simples:
// Estrutura básica de um Cloudflare Worker
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
// Intercepte, modifique ou sirva qualquer requisição HTTP
const url = new URL(request.url)
if (url.pathname === '/api/hello') {
return new Response(JSON.stringify({
message: 'Olá do Edge!',
location: request.cf?.colo || 'desconhecido'
}), {
headers: { 'Content-Type': 'application/json' }
})
}
// Fetch de outro recurso diretamente da borda
const response = await fetch('https://api.exemplo.com/dados')
return response
}
Principais Vantagens
- Latência ultra-baixa: Código executa na cidade mais próxima do usuário final
- Cold starts praticamente zero: O runtime V8 é extremamente rápido para iniciar, ao contrário de contêineres Docker
- Preço acessível: O plano gratuito inclui 100 mil requisições/dia; planos pagos a partir de $5/mês
- Escalabilidade automática: Cada requisição pode rodar em uma instância isolada — sem preocupação com concorrência
- Integração com o ecossistema Cloudflare: Cache, R2 (object storage), D1 (banco SQL), KV (key-value store), Queues e mais
Workers com R2: Armazenamento de Objetos na Borda
O Cloudflare R2 é uma alternativa ao Amazon S3 sem taxas de egress (saída de dados). Combinado com Workers, você pode servir arquivos estáticos, imagens e vídeos diretamente da borda:
import { AwsClient } from 'aws4fetch'
export default {
async fetch(request, env) {
const url = new URL(request.url)
const key = url.pathname.slice(1) // Remove a barra inicial
if (!key) {
return new Response('Arquivo não encontrado', { status: 404 })
}
const object = await env.MEUBUCKET.get(key)
if (object === null) {
return new Response('Objeto não encontrado', { status: 404 })
}
const headers = new Headers()
object.writeHttpMetadata(headers)
headers.set('etag', object.httpEtag)
return new Response(object.body, {
headers,
})
}
}
D1: Banco de Dados SQL Relacional na Edge
O D1 é o banco de dados SQL nativo do Cloudflare Workers, baseado no SQLite. Ele permite queries relacionais diretamente da borda, perfeito para aplicações que precisam de persistência de dados com latência mínima:
export default {
async fetch(request, env) {
// Criar uma nova tarefa
if (request.method === 'POST') {
const { titulo, descricao } = await request.json()
const { results } = await env.DB.prepare(
'INSERT INTO tarefas (titulo, descricao) VALUES (?, ?) RETURNING *'
).bind(titulo, descricao).run()
return Response.json({ tarefa: results[0] }, { status: 201 })
}
// Listar todas as tarefas
const { results } = await env.DB.prepare(
'SELECT * FROM tarefas ORDER BY criado_em DESC'
).all()
return Response.json({ tarefas: results })
}
}
Cron Triggers com Workers
Além de responder a requisições HTTP, Workers pode executar tarefas agendadas usando Cron Triggers. Ideal para rotinas de manutenção, backups e processamento em lote:
export default {
async scheduled(event, env, ctx) {
// Executa todo dia às 3h da manhã
switch (event.cron) {
case '0 3 * * *':
await limparLogsAntigos(env)
await gerarRelatorioDiario(env)
break
case '0 0 * * 0':
// Todo domingo à meia-noite
await limparCacheGlobal(env)
break
}
},
async fetch(request, env) {
return new Response('Worker de tarefas agendadas ativo!')
}
}
Workers KV: Armazenamento Chave-Valor Global
O KV (Key-Value) é um armazenamento de dados global e de baixa latência, ideal para configurações, cache de API e conteúdo dinâmico. Os dados são replicados para todas as regiões da Cloudflare:
export default {
async fetch(request, env) {
const url = new URL(request.url)
const path = url.pathname
// Cache em KV com TTL
if (path === '/api/precos') {
const cacheKey = 'precos_cripto'
// Tenta ler do cache primeiro
const cached = await env.MEU_KV.get(cacheKey, 'json')
if (cached) {
return Response.json(cached, {
headers: { 'X-Cache': 'HIT' }
})
}
// Busca dados frescos e armazena no cache
const response = await fetch('https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=brl')
const data = await response.json()
await env.MEU_KV.put(cacheKey, JSON.stringify(data), { expirationTtl: 300 })
return Response.json(data, {
headers: { 'X-Cache': 'MISS' }
})
}
return new Response('Worker KV em execução!')
}
}
Workers AI: Inferência de ML na Borda
A Cloudflare também oferece Workers AI, permitindo executar modelos de machine learning diretamente na borda — sem gerenciar GPUs ou servidores. Modelos como Llama 3, Whisper e Stable Diffusion estão disponíveis:
export default {
async fetch(request, env) {
if (request.method === 'POST') {
const { prompt } = await request.json()
const answer = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
prompt: `Responda em português: ${prompt}`
})
return Response.json({ resposta: answer.response })
}
return new Response('Envie um POST com um prompt para testar Workers AI!')
}
}
Deploy na Prática
O deploy de um Worker é feito via Wrangler CLI, a ferramenta oficial de linha de comando:
# Instalar o Wrangler
npm install -g wrangler
# Fazer login na Cloudflare
wrangler login
# Criar um novo projeto
wrangler init meu-worker --yes
# Configurar o wrangler.toml
# name = "meu-worker"
# main = "src/index.ts"
# compatibility_date = "2026-06-01"
# Fazer deploy
wrangler deploy
# Testar localmente
wrangler dev
Casos de Uso Reais
- API Gateway: Roteamento, autenticação e rate limiting na borda
- A/B Testing: Servir diferentes versões de páginas para diferentes segmentos de usuários
- SEO Dinâmico: Gerar meta tags e Open Graph dinamicamente para SPAs
- Webhook Receiver: Processar webhooks de GitHub, Stripe, etc. sem infraestrutura dedicada
- Image Optimization: Redimensionar e otimizar imagens em tempo real com Cloudflare Images
- Edge Middleware: Modificar requisições e respostas antes de chegarem ao servidor de origem
Limitações a Considerar
- Tempo de execução: Cada Worker tem limite de 30 segundos para CPU (50ms no plano gratuito por requisição)
- Tamanho do script: Máximo de 1MB para o código do Worker
- Sem acesso direto ao sistema de arquivos: Todo armazenamento deve ser via API (R2, KV, D1)
- WebSocket: Suporte limitado comparado a soluções dedicadas
Conclusão
Cloudflare Workers representa uma evolução significativa na computação serverless, aproximando o processamento dos usuários finais através da edge computing. Com seu ecossistema crescente — R2, D1, KV, Queues e Workers AI — a plataforma oferece tudo que você precisa para construir aplicações completas na borda da rede.
Se você busca performance global, custos previsíveis e simplicidade operacional, Cloudflare Workers é uma escolha excelente para seu próximo projeto. Comece com o plano gratuito e explore o poder da computação edge!







