Módulo 2: Guardar dadosAula 8 de 175 minResumo aberto · Vídeo com cadastro grátis

Cloudflare Durable Objects: evite reservas duplicadas no app

Por Mauro Mequelussi · Curso gratuito Cloudflare Workers sem mistério: back-end e IA sem servidor · Português (PT-BR)

Resposta direta · O que esta aula resolve

A Aula 8 de 17 ("Cloudflare Durable Objects: evite reservas duplicadas no app"), parte do módulo "Guardar dados" do curso gratuito "Cloudflare Workers sem mistério: back-end e IA sem servidor" na Escola de Aplicativos (ministrado por Mauro Mequelussi), ensina na prática: o aluno descobre o que são Cloudflare Durable Objects e como eles eliminam problemas clássicos de reservas simultâneas no mesmo horário. Veja como funcionam o SQLite embutido, chamadas via RPC, WebSockets com hibernação e alarmes temporizados. Conheça também os limites arquiteturais, alternativas como Supabase e Redis, e como aproveitar o plano gratuito.

Aula gratuita · Cadastro rápido

Crie sua conta grátis para assistir a esta videoaula em HD

O resumo técnico e os capítulos abaixo são abertos para consulta. Crie sua conta 100% gratuita em segundos para liberar todas as 17 videoaulas em HD, controle automático de progresso, Tutor IA e certificado gratuito verificável.

  • R$ 0 · Sem cartão de crédito
  • Tutor IA tira-dúvidas da aula
  • Certificado gratuito incluso

O que você vai aprender

  • O que são Durable Objects e como diferem de um Worker convencional
  • Como garantir que apenas um pedido acesse e altere dados disputados por vez
  • O funcionamento do banco SQLite integrado e privado de cada objeto
  • Como conectar seu Worker ao objeto pelo nome via RPC sem complicação
  • Como usar WebSockets com hibernação e alarmes para atualizações ao vivo
  • Quando escolher Durable Objects e quando preferir bancos relacionais como o D1

Pontos-chave da aula

  • Cada Durable Object tem um identificador único global e atende um pedido de cada vez
  • O armazenamento SQLite embutido é fortemente consistente e exclusivo daquela instância
  • WebSockets hibernáveis mantêm conexões em tempo real ativas sem cobrar tempo ocioso
  • Nunca coloque todo o sistema em um único objeto: particione por loja, sala ou usuário para evitar gargalos
  • O plano gratuito oferece 100 mil requisições por dia e 5 GB de armazenamento SQLite

Capítulos e roteiro técnico da aula

9 capítulos minutados
  1. 00:00

    O problema do horário duplicado no mesmo segundo

    Entenda como cliques simultâneos causam conflitos de concorrência e por que Workers sem estado não conseguem coordenar reservas sozinhos.

  2. 00:21

    A analogia do recepcionista com a prancheta

    Uma metáfora simples para entender o papel de um coordenador centralizado que atende uma solicitação por vez.

  3. 00:47

    O que é e como funciona um Durable Object

    As três características fundamentais dos Durable Objects: identificador global exclusivo, banco SQLite próprio e fila de processamento único.

  4. 01:32

    Comunicação com o objeto via stub e RPC

    Como o Worker localiza a instância correta pelo nome e invoca seus métodos nativamente por chamada de procedimento remoto.

  5. 01:53

    Reserva garantida, WebSockets e alarmes

    Aplicação prática no app de agendamento, sincronização de telas em tempo real sem custo ocioso e disparo de alarmes automáticos.

  6. 02:41

    Quando não usar Durable Objects

    Casos onde Workers comuns ou o Cloudflare D1 são escolhas melhores, além de cuidados para evitar gargalos arquiteturais.

  7. 03:18

    Comparativo com Supabase, Redis e Firebase

    Análise das alternativas de mercado para travas de concorrência e colaboração ao vivo frente à proposta integrada da Cloudflare.

  8. 03:51

    Preços, plano gratuito e hibernação

    Limites de requisições no plano grátis, cobrança no plano pago e a importância de deixar o objeto hibernar.

  9. 04:12

    Conclusão e introdução a Queues e Cron Triggers

    Recapitulação da solução de horário único e prévia de tarefas assíncronas com filas e agendamentos.

Momentos de destaque na prática

00:47

As 3 regras que definem um Durable Object

Entenda por que Durable Objects juntam código, SQLite dedicado e fila de processamento único para impedir dados corrompidos.

01:59

Como evitar reservas duplicadas na prática

Veja como enfileirar solicitações concorrentes, atualizar telas via WebSocket e agendar cancelamentos com alarmes.

02:43

Quando NÃO usar Durable Objects

Evite gargalos caros descobrindo exatamente quando o D1 ou Workers comuns são melhores que um Durable Object.

Notas de aula e guia de estudo

Quando dois clientes tentam reservar o mesmo horário no exato segundo, back-ends sem estado tradicionais podem confirmar ambos por engano. Os Cloudflare Durable Objects resolvem essa dor de cabeça centralizando o processamento em um único objeto por entidade, garantindo consistência total e execução estritamente sequencial.

O que você vai aprender

  • O que são Durable Objects e como diferem de um Worker convencional
  • Como garantir que apenas um pedido acesse e altere dados disputados por vez
  • O funcionamento do banco SQLite integrado e privado de cada objeto
  • Como conectar seu Worker ao objeto pelo nome via RPC sem complicação
  • Como usar WebSockets com hibernação e alarmes para atualizações ao vivo
  • Quando escolher Durable Objects e quando preferir bancos relacionais como o D1

Pontos-chave

  • Cada Durable Object tem um identificador único global e atende um pedido de cada vez
  • O armazenamento SQLite embutido é fortemente consistente e exclusivo daquela instância
  • WebSockets hibernáveis mantêm conexões em tempo real ativas sem cobrar tempo ocioso
  • Nunca coloque todo o sistema em um único objeto: particione por loja, sala ou usuário para evitar gargalos
  • O plano gratuito oferece 100 mil requisições por dia e 5 GB de armazenamento SQLite

Conceitos e ferramentas abordados nesta aula

Cloudflare WorkersDurable ObjectsConcorrência e LocksSQLite IntegradoWebSockets com HibernaçãoAlarmes ServerlessCloudflare WorkersDurable ObjectsCloudflare D1SQLiteSupabaseRedisUpstashFirebaseLiveblocks

Perguntas frequentes sobre esta aula

Nesta aula do módulo "Guardar dados" na Escola de Aplicativos, você aprende de forma prática: O que são Durable Objects e como diferem de um Worker convencional; Como garantir que apenas um pedido acesse e altere dados disputados por vez; O funcionamento do banco SQLite integrado e privado de cada objeto; Como conectar seu Worker ao objeto pelo nome via RPC sem complicação.