Titan ESB API Documentation
Enterprise Service Bus con 9 protocolos nativos. Database, SAP, Salesforce, ERP integration. Construido sobre Erlang/Elixir - La misma tecnología que usa WhatsApp y Discord.
🚀 Resumen
La API de Titan te permite enviar, recibir y gestionar mensajes a velocidades extremas. Diseñada para ser 10-20x más rápida que RabbitMQ con una API simple y poderosa.
Base URL
https://tu-servidor.com/api
Formato de Respuesta
Todas las respuestas están en formato JSON con estructura consistente.
🔐 Autenticación
Titan utiliza API Keys para autenticación. Incluye tu API key en el header Authorization:
curl -H "Authorization: Bearer TU_API_KEY" \\
-H "Content-Type: application/json" \\
https://tu-servidor.com/api/send
Obtén tu API key en el dashboard después de registrarte. Las API keys son específicas por proyecto y pueden tener permisos granulares.
📨 Enviar Mensaje
Envía un mensaje individual a través del bus de Titan. Ultra-rápido y confiable.
Parámetros
- to (string, requerido): Destino del mensaje
- message (object, requerido): Contenido del mensaje
- priority (integer, opcional): Prioridad 1-10
- ttl (integer, opcional): Time to live en segundos
Ejemplo
POST /api/send Content-Type: application/json Envía un JSON con los campos to, message, priority, etc.
⚡ Ultra Batch
Procesamiento por lotes inteligente que puede manejar miles de mensajes simultáneamente. Esta es la característica que hace Titan 10-20x más rápido que RabbitMQ.
Ultra Batch puede procesar hasta 50,000 mensajes/segundo con latencia < 1ms. Utiliza smart batching y compresión automática para maximizar el throughput.
🔧 Health Check
Verifica el estado del sistema Titan y todos sus componentes.
Respuesta
HTTP/1.1 200 OK Content-Type: application/json Retorna información del estado del sistema
🏢 ESB Overview
Titan ESB soporta 9 protocolos empresariales nativos para integración completa:
Protocolos Soportados
- HTTP/REST: 101K+ msg/s - API REST nativa
- SOAP 1.1/1.2: 50K+ msg/s - WSDL + WS-Security
- Database: 50K+ records/s - PostgreSQL, MySQL, SQL Server, Oracle
- SAP: 5K+ RFC/s - RFC, IDoc, BAPI support
- Salesforce: 10K+ API/s - REST, SOAP, Bulk API
- Microsoft Dynamics: 8K+ API/s - OData, Web API
- FTP/FTPS/SFTP: 10K+ files/s - Batch operations
- TCP/SSL: 75K+ msg/s - Raw socket communication
- File I/O: 25K+ files/s - JSON, XML, CSV, EDI
ESB Admin Interface
https://tu-servidor.com/esb-admin
Interfaz gráfica para configurar protocolos, registrar servicios y monitorear integraciones.
🗄️ Database Adapter
Conecta directamente con bases de datos empresariales sin drivers externos:
Ejemplo: Insertar en PostgreSQL
POST /api/database/insert
{
"database_type": "postgresql",
"hostname": "localhost",
"port": 5432,
"database": "mi_empresa",
"username": "user",
"password": "pass",
"table": "clientes",
"data": {
"nombre": "Juan Pérez",
"email": "juan@empresa.com",
"activo": true
}
}
Operaciones Soportadas
- INSERT: Crear nuevos registros
- UPDATE: Actualizar registros existentes
- UPSERT: Insertar o actualizar automáticamente
- DELETE: Eliminar registros
- SELECT: Consultar datos
- STORED_PROCEDURE: Ejecutar procedimientos almacenados
- RAW_SQL: SQL directo
🌍 ERP/CRM Adapters
Integración nativa con sistemas ERP y CRM empresariales:
SAP Integration
POST /api/erp/sap/rfc
{
"system_type": "sap",
"hostname": "sap.empresa.com",
"system_number": "00",
"client": "100",
"username": "SAP_USER",
"password": "sap_pass",
"function_name": "BAPI_CUSTOMER_GETDETAIL",
"parameters": {
"CUSTOMERNO": "0000001000"
}
}
Salesforce Integration
POST /api/erp/salesforce/create
{
"system_type": "salesforce",
"instance_url": "https://empresa.my.salesforce.com",
"username": "user@empresa.com",
"password": "pass",
"security_token": "token123",
"sobject_type": "Account",
"data": {
"Name": "Empresa Cliente",
"Industry": "Technology",
"Phone": "+1234567890"
}
}
Microsoft Dynamics
POST /api/erp/dynamics/create
{
"system_type": "dynamics",
"tenant_id": "tenant-uuid",
"client_id": "app-uuid",
"client_secret": "secret",
"resource_url": "https://empresa.crm.dynamics.com",
"entity_name": "accounts",
"data": {
"name": "Cliente Nuevo",
"telephone1": "+1234567890"
}
}
⚙️ Protocol Configuration
Configuración avanzada de protocolos a través de API:
Configurar FTP/SFTP
POST /api/protocol/configure
{
"protocol": "ftp",
"config": {
"hostname": "ftp.empresa.com",
"port": 21,
"username": "ftpuser",
"password": "ftppass",
"mode": "passive",
"ssl": false
}
}
Test Protocol Health
GET /api/protocol/test/database GET /api/protocol/test/sap GET /api/protocol/test/salesforce
{
"protocol": "database",
"status": "ok",
"latency_ms": 45,
"last_test": "2024-01-15T10:30:00Z"
}
🔄 Transformation Engine
Motor de transformación enterprise-grade con soporte para múltiples formatos y transformaciones complejas:
Capacidades del Engine
- Format Conversion: XML ↔ JSON ↔ CSV ↔ EDI ↔ SOAP
- XSLT Processing: XSLT 1.0/2.0 con template caching
- Schema Mapping: Field-to-field mapping avanzado
- Performance: 50K+ transformaciones/segundo
- Custom Functions: Biblioteca de funciones empresariales
Ejemplo: Transformación Básica
POST /api/transform
{
"source_format": "json",
"target_format": "xml",
"message": {
"customer": {
"name": "Juan Pérez",
"email": "juan@empresa.com",
"phone": "555-0123"
}
},
"config": {
"root_element": "Customer",
"namespace": "http://empresa.com/schemas"
}
}
{
"status": "success",
"transformed_message": "<?xml version="1.0" encoding="UTF-8"?><Customer xmlns="http://empresa.com/schemas"><name>Juan Pérez</name><email>juan@empresa.com</email><phone>555-0123</phone></Customer>",
"transformation_time_ms": 5,
"source_format": "json",
"target_format": "xml"
}
🎨 XSLT Transformations
Transformaciones XSLT empresariales con template caching y funciones personalizadas:
Ejemplo: XSLT Template
POST /api/transform/xslt
{
"source_format": "xml",
"target_format": "xml",
"xml_data": "<order><customer>John</customer><amount>100</amount></order>",
"xslt_template": "<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><invoice><client><xsl:value-of select="order/customer"/></client><total><xsl:value-of select="order/amount * 1.21"/></total><generated><xsl:value-of select="titan:current-timestamp()"/></generated></invoice></xsl:template></xsl:stylesheet>"
}
Funciones XSLT Disponibles
- titan:format-phone(phone, format): Formateo de teléfonos
- titan:validate-email(email): Validación de emails
- titan:generate-uuid(): Generación de UUIDs
- titan:current-timestamp(format?): Timestamp actual
- Funciones XPath estándar: concat, substring, normalize-space, etc.
{
"status": "success",
"transformed_message": "<?xml version="1.0" encoding="UTF-8"?><invoice><client>John</client><total>121.0</total><generated>2024-01-15T10:30:00Z</generated></invoice>",
"transformation_time_ms": 15,
"template_cached": true
}
🗺️ Schema Mapping
Mapeo avanzado de esquemas con transformaciones condicionales y validación:
Ejemplo: Schema Mapping
POST /api/transform/schema-mapping
{
"source_data": {
"customer_name": "Juan Pérez",
"customer_email": "JUAN@EMPRESA.COM",
"customer_phone": "5551234567",
"order_date": "2024-01-15",
"order_total": "100.50"
},
"mapping_config": {
"rules": [
{
"source_path": "customer_name",
"target_path": "client.fullName",
"transform_fn": "normalize_name"
},
{
"source_path": "customer_email",
"target_path": "client.email",
"transform_fn": "lowercase"
},
{
"source_path": "customer_phone",
"target_path": "client.phone",
"transform_fn": "format_phone"
},
{
"source_path": "order_total",
"target_path": "invoice.amount",
"transform_fn": "to_float"
}
]
}
}
Transformaciones Disponibles
- String: uppercase, lowercase, trim, capitalize, normalize_name
- Numeric: to_integer, to_float, abs, round
- Date: to_iso8601, parse_date, format_date
- Business: format_phone, validate_email, generate_slug
- Array: join, split, first, last
{
"status": "success",
"mapped_data": {
"client": {
"fullName": "Juan Pérez",
"email": "juan@empresa.com",
"phone": "(555) 123-4567"
},
"invoice": {
"amount": 100.5
}
},
"transformation_time_ms": 8,
"rules_applied": 4
}
🔄 Format Conversion
Conversión entre múltiples formatos empresariales con alta performance:
Formatos Soportados
- JSON: Parsing avanzado, JSONPath queries, schema validation
- XML: SOAP envelopes, namespace handling, XPath queries
- CSV: RFC 4180 compliant, auto type detection, custom delimiters
- EDI: X12, EDIFACT, HL7 healthcare messages
- SOAP: Envelope processing, WS-Security
Ejemplo: JSON a EDI X12
POST /api/transform/format
{
"source_format": "json",
"target_format": "edi",
"message": {
"transaction_type": "850",
"sender_id": "COMPANY123",
"receiver_id": "VENDOR456",
"purchase_order": {
"po_number": "PO-2024-001",
"order_date": "2024-01-15",
"items": [
{"sku": "ITEM001", "quantity": 10, "price": 25.00}
]
}
},
"config": {
"edi_type": "x12",
"element_separator": "*",
"segment_terminator": "~"
}
}
{
"status": "success",
"transformed_message": "ISA*00* *00* *ZZ*COMPANY123 *ZZ*VENDOR456 *240115*1030*U*00401*000000001*0*P*>~GS*PO*COMPANY123*VENDOR456*20240115*1030*1*X*004010~ST*850*0001~BEG*00*SA*PO-2024-001**20240115~PO1*1*10*EA*25.00**VP*ITEM001~CTT*1~SE*5*0001~GE*1*1~IEA*1*000000001~",
"transformation_time_ms": 12,
"format": "x12",
"segments_generated": 8
}
🛡️ Rate Limiting
Titan incluye rate limiting avanzado para proteger tu infraestructura:
- API Pública: 1,000 requests/minuto
- API Autenticada: 10,000 requests/minuto
- Ultra Batch: Sin límites (autoadaptativo)
Titan usa algoritmos adaptativos que ajustan automáticamente los límites según la carga del sistema y el comportamiento del cliente.