Caerus LogoCaerusDocs

Playground en Vivo

Live Simulator

Experimentá con la gestión de concurrencia distribuida (SRE) y locking atómico (DLS). Ejecutá operaciones visuales y observá en tiempo real el código TypeScript, el comportamiento ante conflictos o encolamientos, expiraciones automáticas por TTL y contratos de SDK.

Ver verbos de SRE
Single Resource Execution (SRE) · Venta de Butacas
Reserva temporal atómica con plantillas unitarias y TTL. Previene sobreventa sin bloqueos pesados.
Política:
1. Ana intenta reservar la butaca A1Paso 1 de 4

Ana selecciona la butaca A1. Caerus genera una reserva temporal exclusiva por 120 segundos (estado PENDING) para que complete el pago.

Sesión 1: Navegador de 'Ana'
Cliente A
Estado en A1:SIN RESERVA
Sesión 2: Navegador de 'Beto'
Cliente B
Estado en A1:SIN ACCIÓN
Disponibles24
Reserva Ana0
Reserva Beto0
En Cola FIFO0
Confirmados0
━━ PANTALLA ━━
A1
A2
A3
A4
A5
A6
A7
A8
B1
B2
B3
B4
B5
B6
B7
B8
C1
C2
C3
C4
C5
C6
C7
C8

El mapa refleja el estado del paso a paso guiado de la butaca A1.

Ciclo de Vida de un Recurso Unitario en Caerus (SRE)

1. Aprovisionamiento: Cada butaca se registra previamente en el inventario con su plantilla de concurrencia mediante await caerus.createUnitary('cinema_seats', 'seat_a1') (stock exacto = 1).2. Reserva Concurrente: Al intentar comprar, el backend invoca caerus.unitary('seat_a1').take({ ttlSeconds: 120 }) emitiendo un lease temporal atómico (ResourceHolder en estado PENDING). Si compiten dos usuarios, la política FAIL rechaza la colisión con ConflictError garantizando cero sobreventa, y la política QUEUE encola la solicitud en orden FIFO para asignarla automáticamente al liberarse el holder.3. Confirmación Definitiva: Al completarse el pago, caerus.confirm(holderId) asienta la butaca como vendida (SOLD) y cancela el TTL.

Live SDK Inspector
0 calls

Inspector listo y a la escucha

Interactuá con la simulación para ver la ejecución del SDK de Caerus SRE en tiempo real.