Caerus LogoCaerusDocs

SDKs Oficiales de Caerus

TypeScript, Java & Go

Clientes oficiales para integrar Caerus en tus microservicios backend. Soporte para Node.js / TypeScript, Java 17+ y Go 1.26+, con tipado estricto, comunicación gRPC de alto rendimiento y selección unificada de lenguaje.

Signature
const caerus = new CaerusClient(options: CaerusClientOptions);

Instalación

Selecciona tu lenguaje preferido. Los SDKs oficiales se distribuyen a través de sus registros estándar (npm para Node.js/TypeScript, Maven Central para Java y módulos de Go):

npm / pnpm / yarn / bunbash
npm install @caerus-dev/sdk
# O con tu gestor preferido:
# pnpm add @caerus-dev/sdk
# yarn add @caerus-dev/sdk
# bun add @caerus-dev/sdk
TypeScript / Node.js

Requiere Node.js 20 o superior. Incluye tipos completos de TypeScript y empaquetado dual ESM y CommonJS.

Java 17+

Compatible con Java 17 o superior. Empaqueta gRPC (Netty) y Protobuf sin exponer dependencias conflictivas.

Go 1.26+

Compatible con Go moderno. Diseñado con contextos bloqueantes, soporte nativo de cancelaciones y sin exponer gRPC en la API pública.

Inicialización del Cliente

La API Key identifica a tu organización y entorno (e.g. Producción, Staging). El cliente gestiona un canal multiplexado gRPC thread-safe y reutilizable:

caerus.tstypescript
import { CaerusClient } from '@caerus-dev/sdk';
 
export const caerus = new CaerusClient({
apiKey: process.env.CAERUS_API_KEY!,
});

Conexión a un Caerus Local (Docker)

A futuro / En Roadmap

Actualmente Caerus opera como servicio centralizado en la nube. A futuro, estará disponible una distribución e imagen oficial de Docker para levantar un servidor de Caerus en tu propia máquina (puerto 9090) para pruebas unitarias, integración continua o desarrollo offline:

caerus.local.tstypescript
const caerus = new CaerusClient({
endpoint: 'localhost:9090',
apiKey: process.env.CAERUS_API_KEY!,
tls: false, // Un motor local corre sin certificado TLS
});
Formato de endpoint y TLS

Al apuntar a un host personalizado o motor local, el endpoint debe ser únicamente host:puerto (por ejemplo localhost:9090, sin prefijo http:// ni https://) y acompañarse de tls: false para comunicación en texto plano.

Tabla de Opciones

OpciónPor DefectoDescripción
apiKey—Requerido. Clave de API obtenida de la consola web de Caerus.
endpointCloud CaerusDirección host:port del cluster gRPC de Caerus.
tlstrueHabilita encriptación TLS. Desactivar solo con false explícito en conexiones locales (roadmap).
timeoutMs10000Tiempo máximo de espera (deadline gRPC) en milisegundos.

Uso con SRE (Inventario & Recursos Compartidos)

Flujo de reserva transaccional en dos fases: adquirir una reserva temporal (take) sujeta a TTL y luego confirmarla (confirm) o liberarla (release):

reserva.tstypescript
// 1. Adquirir reserva temporal con TTL e idempotencia
const holder = await caerus.unitary('seat-A12').take({
ttlSeconds: 60,
idempotencyKey: 'checkout-session-123',
});
 
// 2. Procesar cobro en tu pasarela...
// 3. Confirmar la reserva de inventario
await caerus.confirm(holder.id);

Uso con DLS (Locks Distribuidos)

Sincronización y exclusión mutua distribuida entre workers concurrentes mediante transacciones y Fencing Tokens:

dls-worker.tstypescript
import { Dls } from '@caerus-dev/sdk';
 
const dls = new Dls.DlsClient({ apiKey: process.env.CAERUS_API_KEY! });
 
// withTransaction orquesta la transacción, heartbeat automático y liberación en finally
await dls.withTransaction(async (tx) => {
const lock = await tx.acquireLock(
'billing-jobs',
'monthly-billing',
'EXCLUSIVE',
{ timeoutMs: 10000 }
);
 
console.log('Fencing Token:', lock.fencingToken);
// Ejecutar tarea crítica...
}, { timeoutMs: 15000 });

Mocks y Testing

Para pruebas unitarias rápidas sin depender de conexión a internet o red:

order-service.spec.tstypescript
import { CaerusClient } from '@caerus-dev/sdk';
 
// Puedes inyectar un cliente de prueba o mockear con Jest / Vitest:
const testClient = new CaerusClient({
apiKey: 'test-key',
});

Repositorios Oficiales en GitHub

caerus-sdk-ts (TypeScript)

Repositorio de Node.js / TypeScript. Código fuente, tipados y ejemplos para Next.js y Express.

Ver en GitHub
caerus-sdk-java (Java)

Repositorio oficial de Java 17+. Artefactos Maven, tests de integración y mocks en memoria.

Ver en GitHub
caerus-sdk-go (Go)

Repositorio oficial de Go 1.26+. Concurrencia idiomática, soporte de contextos y testing en memoria.

Ver en GitHub
← Visión GeneralAprender SRE (Shared Resources)