Caerus LogoCaerusDocs

Guía de la Consola Web y Configuración

Guía UI

Aprende a navegar el panel de control de Caerus: cómo crear aplicaciones, configurar entornos aislados, definir plantillas de concurrencia y qué impacto tiene cada opción en tus flujos de producción.

Flujo de Trabajo y Jerarquía

Antes de escribir una sola línea de código en tu aplicación o microservicio, la Consola Web te permite modelar la arquitectura de concurrencia de forma visual y declarativa.

Caerus organiza tus recursos a través de una jerarquía de cuatro niveles:

1

Aplicación (Tenant)

Es el contenedor principal de un proyecto o sistema (por ejemplo, "Ticketera Cine" o "Plataforma E-commerce"). Agrupa todos sus entornos, colaboradores y facturación.

2

Entornos (Environments)

Instancias lógicas completamente aisladas (ej: dev, staging, production). Cada entorno cuenta con API Keys, recursos y locks aislados de forma independiente sin interferencia entre sí.

3

Plantillas (Templates)

Contratos de configuración estáticos que definen las reglas del juego: tiempo de expiración (TTL), políticas de conflicto (rechazo vs cola), idempotencia y detección de deadlocks.

4

Instancias en Tiempo Real

Los recursos reales creados en tiempo de ejecución (la butaca D4, el turno médico de las 14:00 o el lock sobre user_wallet_99) que heredan las reglas de su plantilla asociada.

Creación de una Aplicación

Para crear una nueva aplicación, dirígete al menú principal del panel y haz clic en "Nueva Aplicación" (o accede a /dashboard/applications/new).

Campos requeridos en el alta

  • Nombre de la Aplicación: Nombre representativo de tu proyecto (ej: MercadoTicket, Fintech Gateway).
  • Descripción (Opcional): Resumen del propósito o contexto de la aplicación para tu equipo.
  • Selección de Entornos Iniciales: Puedes marcar los entornos que se crearán automáticamente (dev viene seleccionado por defecto; también puedes marcar stage y prod).
  • Método de Pago: Si tu plan requiere una tarjeta registrada en Stripe, la consola te mostrará el modal seguro de suscripción antes de confirmar la creación.

Gestión y Aislamiento de Entornos

Cada entorno representa un ciclo de despliegue con aislamiento criptográfico y de almacenamiento absoluto: una reserva efectuada en dev jamás colisionará ni consumirá stock de production.

Configuración y Colores

Desde Configuración de la Aplicación (/dashboard/applications/[id]/settings), puedes agregar nuevos entornos (por ejemplo, qa, local o canary) y asignarles una etiqueta de color (Slate, Blue, Emerald, Amber, Rose, Purple) para identificarlos de inmediato en la barra superior del Dashboard.

SRE EngineShared Resource Templates

Plantillas de Recursos Compartidos (SRE)

Las plantillas SRE controlan el ciclo de vida del inventario en tiempo real (butacas, turnos, stock de flash sales). Para crear una plantilla, ingresa a tu aplicación, selecciona la pestaña "Recursos" y haz clic en "Nuevo Recurso".

Explicación Detallada de Opciones del Formulario SRE

Nombre (name)Identificador

Identificador alfanumérico único en minúsculas y guiones bajos (ej: asientos_vip, entradas_campo). Es el valor que luego pasarás al SDK o a los métodos gRPC en el campo template_name.

Modo (Unitario vs Pooled)Tipo de Stock

Unitario: Existe exactamente 1 unidad atómica (ej: butaca D9, turno de las 10:00).
Pooled (Múltiple): Existe un cupo de N unidades fungibles e intercambiables (ej: 50 entradas generales, 200 items de inventario).

TTL por Defecto (Segundos)Temporizador

Tiempo de vida de la reserva temporal (ej: 300 segundos = 5 minutos). Si el cliente toma un recurso con take() pero no lo confirma antes de este límite (o si la pestaña se cierra), el motor libera automáticamente el cupo devolviéndolo al inventario sin intervención manual.

Exigir IdempotenciaSwitch

Al activarlo, cualquier llamada a take() debe incluir obligatoriamente un idempotency_key. Si la conexión de red vacila y el cliente reintenta, Caerus detecta la clave y responde con la misma reserva en curso en lugar de cobrar dos veces o reservar dos asientos.

Guardar MetadataSwitch

Si está activado, la metadata JSON enviada en las operaciones take() y confirm() se persiste permanentemente en la base de datos para trazabilidad, auditoría o recuperación de carritos abandonados.

Estrategia de Resolución de ConflictoFAIL | QUEUE | RETRY
FAIL

Si el recurso no tiene disponibilidad, la petición es rechazada de inmediato con ConflictError. Ideal para selección de butacas en mapa de sala.

QUEUE

Las peticiones en exceso ingresan en una fila FIFO de espera. Cuando un usuario desiste o su TTL expira, el motor le asigna el recurso al siguiente de la cola automáticamente.

RETRY

El motor reintenta la adquisición internamente. Habilita configurar el Intervalo de Reintento (1 a 10 seg) y el Máximo de Intentos (1 a 5).

DLS EngineDistributed Lock Templates

Plantillas de Bloqueos Distribuidos (DLS)

Las plantillas DLS definen el comportamiento de exclusión mutua para microservicios concurrentes (procesamiento de pagos, sincronización de inventario con ERPs, workers de facturación periódica). Para configurarlas, haz clic en la pestaña "Locks" y selecciona "Nuevo Lock".

Explicación Detallada de Opciones del Formulario DLS

NamespaceAgrupador

Nombre de la categoría de bloqueos (ej: facturacion_mensual, migracion_cuentas). Permite segmentar el espacio de nombres para que distintas partes de tu sistema no colisionen.

Tipo de BloqueoEXCLUSIVE vs READ_WRITE

EXCLUSIVE: Exclusión mutua total. Solo 1 proceso puede retener el lock a la vez.
READ_WRITE: Permite múltiples procesos leyendo en simultáneo (SHARED_READ), pero exige exclusión absoluta cuando un worker solicita escribir (EXCLUSIVE).

Exigir Fencing TokenRecomendado

Genera un número de versión monotónico creciente con cada adquisición respaldado por consenso estricto. Protege a tu base de datos contra workers "zombies" demorados por recolección de basura o pausas de red (Split-Brain).

Resolución de DeadlocksALERT vs KILL_PRIORITY

ALERT: Detecta ciclos en el grafo de dependencias y despacha un evento/alerta para inspección sin detener la ejecución.
KILL_PRIORITY: Aborta automáticamente la transacción más joven involucrada en el ciclo para destrabar el cuello de botella de forma inmediata.

Estrategia de Adquisición de LockFAIL | QUEUE | RETRY

Define qué ocurre si un worker intenta bloquear una clave que ya está ocupada:

FAIL

Retorna rechazo inmediato sin esperas ni reintentos.

QUEUE

El cliente espera de forma reactiva mediante Server Streaming gRPC hasta que el lock quede libre.

RETRY

Reintenta activamente cada N milisegundos hasta agotar el número de intentos configurado.

Credenciales y API Keys

Para que tu código se comunique con Caerus, necesitas una API Key vinculada al entorno en el que deseas operar.

Buenas prácticas de manejo de credenciales

  • Generación por entorno: Cada API Key pertenece estrictamente a una aplicación y a un entorno específico (por ejemplo, caerus_live_... o caerus_dev_...).
  • Visualización única: Por motivos de seguridad, la clave secreta completa se muestra una única vez al momento de su creación. Asegúrate de copiarla y guardarla en tu gestor de secretos o archivo .env.local.
  • Revocación en caliente: Si una clave se ve comprometida, puedes revocarla desde la consola web con un solo clic sin afectar al resto de las claves ni a los demás entornos.

Herramientas de Operación y Control

El panel de control incluye utilidades avanzadas para acelerar el desarrollo y auditar el comportamiento de tus recursos:

Duplicar Plantillas
¿Terminaste de configurar tus plantillas en dev? Con la opción "Duplicar a otro entorno" puedes clonar toda la configuración hacia staging o production con un clic, eliminando errores de transcripción manual.
Control Manual
La pestaña "Control Manual" te permite probar reservas en vivo (crear recursos, simular operaciones take y release) directamente desde el navegador para validar tus plantillas sin requerir código cliente.
Webhooks & Métricas
Suscribe endpoints HTTP para recibir notificaciones en tiempo real cuando un recurso expire o sea confirmado, y visualiza gráficos de throughput, latencia y uso en la pestaña "Métricas".

¿Listo para conectar tu código?

Una vez creadas tus plantillas y API Keys, consulta la guía de inicio rápido con el SDK oficial.

Ver Guía del SDK