CapyDB Knight/Valkyrie

K/V

Un almacén clave-valor y limitador de tasa que corre en su propia celda, junto a tus datos — y que funciona perfectamente sin base de datos alguna.

01

Qué es

Un almacén clave-valor gestionado, uno por proyecto, corriendo en su propia celda: su propio proceso, su propio límite de memoria, su propio almacenamiento. Funciona con tecnología de Valkey y habla dos protocolos — el protocolo REST de Upstash sobre HTTPS y RESP en el cable — de modo que los clientes que ya tienes funcionan contra él sin modificaciones.

Está pensado para el trabajo que pide un contador en vez de una tabla: límites de tasa, sesiones, colas, feature flags, cachés efímeras. Postgres puede hacerlo todo, y nada de ello tan barato.

02

Limitación de tasa

Esta es la integración entera. Dos variables de entorno y el limitador que tu framework ya espera; aquí nada es específico de CapyDB salvo de dónde salen las credenciales.

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

Por su cuenta

K/V es una función por derecho propio, no algo atornillado a una base de datos. Puedes añadir un almacén y no abrir nunca la base de datos que tiene al lado: ningún esquema que diseñar, ninguna cadena de conexión que cablear, ninguna migración que ejecutar. Muchas aplicaciones quieren un limitador de tasa y nada más, y esa es una forma completa de usar CapyDB.

Aun así, un almacén pertenece a un proyecto, porque el proyecto es como CapyDB delimita facturación, acceso y región. El proyecto conserva una celda de base de datos que eres libre de ignorar — una celda sin uso se pausa sola y no consume nada.

04

Aislamiento

Un almacén K/V es una celda, la misma primitiva de ejecución que recibe una base de datos. No es una metáfora de un espacio de nombres dentro de un servidor compartido:

  • -Su propio proceso, con su límite de memoria y su cuota de CPU impuestos por el núcleo — un vecino no puede gastarse tu memoria.
  • -Su propio almacenamiento, su propia credencial, su propio socket. No hay instancia compartida ni espacio de claves común donde colisionar.
  • -Accesible solo a través del endpoint autenticado. El almacén en sí no tiene ruta hacia la internet pública ni hacia tu base de datos.

05

Compatibilidad

Dos protocolos, ambos estándar, de modo que migrar aquí es cambiar una URL y un token:

  • -El protocolo REST de Upstash, con pipelining, transacciones y codificación base64 — @upstash/redis y @upstash/ratelimit funcionan con su configuración por defecto.
  • -RESP, para clientes de Redis® OSS corrientes: ioredis, node-redis, redis-py, go-redis, redis-cli. Comandos bloqueantes y pub/sub incluidos.
  • -Con tecnología de Valkey. Redis es una marca registrada de Redis Ltd.; CapyDB no está afiliada a Redis Ltd. ni cuenta con su respaldo.

06

Capacidad

K/V está incluido en todos los planes, al tamaño de ese plan — no hay suscripción de K/V aparte ni cargo por comando. Las cifras de abajo son lo que el almacén va a guardar:

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

07

La durabilidad, con franqueza

Un almacén K/V guarda una instantánea periódica, así que sobrevive a un reinicio, pero no es una base de datos. No hay copias de seguridad, ni recuperación a un punto en el tiempo, ni réplica, y la política de descarte tirará claves en cuanto el almacén se llene.

Trátalo como estado rápido y prescindible: contadores, sesiones, cachés, bloqueos. Todo lo que te disgustaría perder pertenece a la celda de base de datos de al lado, que sí tiene copias de seguridad y recuperación a un punto en el tiempo.

08

Empezar

Añade un almacén desde la pestaña K/V de un proyecto en el panel. Se aprovisiona en segundos y te entrega el endpoint y el token una sola vez — el token solo se guarda como hash, así que cópialo en ese momento.