Visión General de la Plataforma
Core PlatformCaerus es una plataforma Backend-as-a-Service (BaaS) diseñada para resolver la concurrencia distribuida, reservas de recursos limitados y sincronización de procesos críticos sin complejidad operativa.
¿Qué problema resuelve Caerus?
Vender o apartar algo de lo que solo hay una unidad (una butaca de cine, un turno médico, un cupo de inscripción o inventario limitado) es mucho más difícil de lo que aparenta. Dos usuarios presionan Comprar en la misma fracción de segundo; una pasarela de pago tarda 8 segundos en contestar; y un tercer usuario abandona el carrito con el recurso bloqueado.
Resolver esto de forma artesanal exige coordinar clústeres distribuidos complejos, diseñar mecanismos a medida contra condiciones de carrera, lidiar con bloqueos pesados en bases de datos y programar tareas en segundo plano para limpiar reservas abandonadas. Caerus abstrae toda esta complejidad detrás de APIs declarativas de baja latencia y un SDK unificado.
Garantías de Consistencia y Rendimiento
Caerus combina procesamiento atómico en memoria para respuestas en milisegundos con mecanismos automáticos de persistencia y durabilidad:
Las operaciones transaccionales de alta frecuencia (adquisición de bloqueos, reservas temporales take, conteo atómico y expiraciones por TTL) se procesan directamente en memoria con exclusión mutua estricta.
El estado de cada reserva y bloqueo se sincroniza de forma duradera desacoplándose de los picos de tráfico, garantizando consistencia y trazabilidad histórica sin degradar los tiempos de respuesta.
Los Motores: SRE y DLS
Caerus provee dos motores especializados según el nivel de abstracción requerido:
- Recursos Unitarios (asientos numerados) vs Con cupo (entradas generales).
- Ciclo:
take()con TTL ➔confirm()orelease(). - Estrategias de conflicto:
FAILvsQUEUE(fila de espera).
- Locks Exclusive y Shared Read en transacciones.
- Fencing Tokens monotónicos para evitar escrituras obsoletas (split-brain).
- Detección y resolución automática de ciclos de Deadlock.
Inicio Rápido (SDK)
Antes de inicializar el cliente en código, aprende a crear tu aplicación, configurar entornos y definir las plantillas de recursos y bloqueos en el Dashboard.
Instala el SDK en tu aplicación backend (Node.js/TypeScript, Java o Go) y empieza a coordinar recursos en minutos:
npm install @caerus-dev/sdkEjemplo de retención de recurso unitario con pago y confirmación:
1import { CaerusClient } from '@caerus-dev/sdk';2 3const caerus = new CaerusClient({4 apiKey: process.env.CAERUS_API_KEY!,5});6 7// 1. Apartar el asiento durante 5 minutos8const holder = await caerus.unitary('asiento-B14').take({9 ttlSeconds: 300,10 metadata: { clienteId: 'usr_948' }11});12 13try {14 // 2. Procesar el cobro en la pasarela de pagos15 await procesarPagoTarjeta(holder.id);16 17 // 3. Confirmar la venta de forma definitiva18 await caerus.confirm(holder.id);19 console.log('Compra confirmada con éxito:', holder.id);20} catch (error) {21 // 4. Si el pago falla, liberar inmediatamente para otros clientes22 await caerus.release(holder.id);23}¿Desarrollas en otros lenguajes? Conéctate directo vía gRPC
Toda la infraestructura de Caerus opera de forma nativa sobre gRPC y HTTP/2 con serialización binaria Protocol Buffers v3. Si tu stack backend no utiliza TypeScript, Java o Go, puedes compilar tus propios clientes fuertemente tipados a partir de nuestro repositorio de esquemas canónicos.
Revisa la firma exhaustiva de los métodos de SharedResourceEngine y DistributedLockingEngine, parámetros de entrada, respuestas y códigos de error.
Clona las definiciones .proto oficiales listas para compilar con protoc o buf en Python, Kotlin, Rust o C#.