~/VibeHandbook
PDF grátis

Cloudflare

developers.cloudflare.com

D1

O que é

Pense em uma planilha com linhas e colunas organizadas, na qual seu aplicativo pode fazer perguntas precisas, como "mostre todos os pedidos pagos de junho." O D1 é o banco de dados sem servidor () da Cloudflare — esse armazenamento de tabelas organizado e consultável — construído sobre o SQLite. ("Sem servidor" significa que não há servidores para você configurar ou manter rodando; o provedor cuida de tudo isso.) SQL (Structured Query Language, ou Linguagem de Consulta Estruturada) é a linguagem padrão para fazer perguntas a um banco de dados. Você cria um banco de dados, o vincula a um Worker ou a um projeto Pages, e faz consultas com SQL puro por meio de uma pequena JavaScript (Application Programming Interface, ou Interface de Programação de Aplicações — o conjunto de comandos que você chama). Não há servidores para dimensionar nem pools de conexão para gerenciar — a Cloudflare cuida do armazenamento, da replicação e do escalonamento, e você paga pelas linhas que lê e escreve.

Pontos fortes

  • SQL de verdade (dialeto SQLite) — SELECT, JOIN, transações e índices familiares.
  • Sem servidor: sem provisionamento, sem limites de conexão, escala até zero.
  • Integração estreita com Workers e Pages por meio de um único binding (vínculo).
  • A replicação de leitura coloca cópias perto dos usuários para leituras de baixa latência.
  • Barato para cargas de trabalho de aplicativos típicas, com um nível gratuito utilizável.

Contrapartidas

  • Semântica do SQLite: conjuntos de dados enormes e concorrência de escrita muito pesada não são seu ponto forte.
  • Limites de tamanho por banco de dados significam que dados muito grandes podem precisar de sharding (dividir entre vários bancos de dados) ou do R2 (o armazenamento de arquivos da Cloudflare).
  • Mais novo que Postgres/MySQL, então as ferramentas e o ecossistema ainda estão amadurecendo.
  • Melhor acessado a partir da borda (); usá-lo de fora da Cloudflare é menos natural.

Quando usar

Escolha o D1 para dados de aplicativo em um projeto hospedado na Cloudflare: registros de usuários, conteúdo, configurações, metadados de sessão — qualquer coisa que se encaixe em um modelo relacional e viva junto com seu aplicativo Workers ou Pages.

Encaixe no vibe coding

O D1 é uma ótima escolha padrão quando um agente já está construindo sobre Workers, porque o banco de dados, o esquema e as consultas vivem todos no mesmo projeto. Peça ao agente para manter as migrações em arquivos .sql versionados e aplicá-las com o Wrangler, de modo que o esquema seja reproduzível. O binding torna a consulta uma linha só dentro do handler.

# wrangler.toml
[[d1_databases]]
binding = "DB"
database_name = "app-db"
database_id = "your-d1-id"
# Create a DB and run a migration
npx wrangler d1 create app-db
npx wrangler d1 execute app-db --file=./schema.sql