Files
amayo/README/SETUP_APPWRITE_CACHE.md

2.1 KiB

🚀 Guía Rápida: Configurar Caché de Guilds con Appwrite

¿Por qué Appwrite en vez de Redis?

  • Redis: Solo 30MB disponibles (ya usando 8%)
  • Appwrite: Sin límites estrictos, incluido en plan gratis
  • Ahorra ~2.4MB de Redis para otros usos

Configuración (5 minutos)

Opción Recomendada: Manual (Consola de Appwrite) 📝

Por qué manual: La API Key de tu proyecto requiere permisos elevados para crear colecciones. Es más rápido hacerlo desde la consola web.

📋 Sigue esta guía paso a paso ← Click aquí

Resumen rápido:

  1. Crea colección guild_cache en Appwrite Console
  2. Agrega 4 atributos: guildId, name, prefix, expiresAt
  3. Crea 2 índices en guildId y expiresAt
  4. Copia el Collection ID
  5. Agrégalo a .env como APPWRITE_COLLECTION_GUILD_CACHE_ID

Opción Alternativa: Script Automático 🤖

⚠️ Requiere API Key con permisos completos (databases.write, collections.write, etc.)

# Si tienes una API Key con permisos suficientes:
node scripts/setupGuildCacheCollection.js

# Luego agrega el ID a .env
APPWRITE_COLLECTION_GUILD_CACHE_ID=el_id_generado

Variables de Entorno Necesarias

Asegúrate de tener en tu .env (o Config Vars de Heroku):

APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=tu_project_id
APPWRITE_API_KEY=tu_api_key
APPWRITE_DATABASE_ID=tu_database_id
APPWRITE_COLLECTION_GUILD_CACHE_ID=tu_collection_id_nuevo

Verificación

Después de desplegar, busca en los logs:

✅ Guild config obtenida desde caché (Appwrite)
✅ Guild config guardada en caché (Appwrite)
🧹 Documentos expirados eliminados de caché

¿Qué hace esto?

  • Antes: Cada mensaje → consulta a PostgreSQL (miles por minuto)
  • Ahora: Cada mensaje → consulta a Appwrite caché (1 vez cada 5 min por servidor)
  • Resultado: 99.8% menos carga en PostgreSQL

Más Información

Lee la documentación completa en: