CapyDB Knight/Valkyrie

K/V

Um repositório chave-valor e limitador de taxa que roda na própria célula, ao lado dos seus dados — e funciona muito bem sem banco de dados nenhum.

01

O que é

Um repositório chave-valor gerenciado, um por projeto, rodando na própria célula: processo próprio, limite de memória próprio, armazenamento próprio. Ele tem tecnologia Valkey e fala dois protocolos — o protocolo REST da Upstash sobre HTTPS e o RESP no fio — de modo que os clientes que você já tem funcionam com ele sem alteração.

Ele é para o trabalho que pede um contador em vez de uma tabela: limites de taxa, sessões, filas, feature flags, caches de vida curta. O Postgres dá conta de tudo isso e de nada disso tão barato.

02

Limitação de taxa

Esta é a integração inteira. Duas variáveis de ambiente e o limitador que seu framework já espera; nada aqui é específico da CapyDB, a não ser de onde vêm as credenciais.

import { Ratelimit } from '@upstash/ratelimit'
import { Redis } from '@upstash/redis'

const ratelimit = new Ratelimit({
  redis: new Redis({
    url: process.env.CAPYDB_KV_REST_URL!,
    token: process.env.CAPYDB_KV_REST_TOKEN!,
  }),
  limiter: Ratelimit.slidingWindow(10, '10 s'),
})

export async function POST(request: Request) {
  const { success } = await ratelimit.limit(userIdFrom(request))
  if (!success) return new Response('Too many requests', { status: 429 })
  // ...
}

03

Sozinho

K/V é um recurso por direito próprio, não algo parafusado num banco de dados. Você pode adicionar um repositório e nunca abrir o banco ao lado: nenhum esquema para desenhar, nenhuma string de conexão para ligar, nenhuma migração para rodar. Muitas aplicações querem um limitador de taxa e mais nada, e essa é uma forma completa de usar a CapyDB.

Ainda assim, um repositório pertence a um projeto, porque é pelo projeto que a CapyDB delimita cobrança, acesso e região. O projeto mantém uma célula de banco de dados que você pode ignorar à vontade — uma célula intocada se pausa sozinha e não consome nada.

04

Isolamento

Um repositório K/V é uma célula, a mesma primitiva de execução que um banco de dados recebe. Isso não é metáfora para um espaço de nomes dentro de um servidor compartilhado:

  • -Processo próprio, com limite de memória e fatia de CPU impostos pelo kernel — um vizinho não consegue gastar a sua memória.
  • -Armazenamento próprio, credencial própria, socket próprio. Não há instância compartilhada nem espaço de chaves comum onde colidir.
  • -Alcançável apenas pelo endpoint autenticado. O repositório em si não tem rota para a internet pública nem para o seu banco de dados.

05

Compatibilidade

Dois protocolos, ambos padrão, de modo que migrar para cá é trocar uma URL e um token:

  • -O protocolo REST da Upstash, incluindo pipelining, transações e codificação base64 — @upstash/redis e @upstash/ratelimit funcionam nas configurações padrão.
  • -RESP, para clientes Redis® OSS comuns: ioredis, node-redis, redis-py, go-redis, redis-cli. Comandos bloqueantes e pub/sub inclusos.
  • -Com tecnologia Valkey. Redis é marca registrada da Redis Ltd.; a CapyDB não tem vínculo com a Redis Ltd. nem endosso dela.

06

Capacidade

O K/V está incluído em todos os planos, no tamanho daquele plano — não há assinatura de K/V à parte nem cobrança por comando. Os números abaixo são o que o repositório vai guardar:

  • -CapyDB Vibe: 32 MB
  • -CapyDB Ship: 128 MB
  • -CapyDB Business: 512 MB

07

Durabilidade, com franqueza

Um repositório K/V mantém um instantâneo periódico, ou seja, sobrevive a um reinício, mas não é um banco de dados. Não há backups, não há recuperação para um ponto no tempo e não há réplica, e a política de descarte vai jogar chaves fora assim que o repositório encher.

Trate-o como estado rápido e descartável: contadores, sessões, caches, travas. Tudo o que você não gostaria de perder pertence à célula de banco de dados ao lado, que tem backups e recuperação para um ponto no tempo.

08

Como começar

Adicione um repositório pela aba K/V de um projeto no painel. Ele é provisionado em segundos e entrega o endpoint e o token uma única vez — o token só é guardado como hash, então copie na hora.