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.

101K+
msg/segundo
9
protocolos
49μs
latencia
99.99%
uptime

🚀 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
💡 Tip

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

POST /api/send

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

POST /api/v2/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.

🚀 Performance

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

GET /api/health

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 Test Response
{
  "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"
  }
}
✅ Transformation Response
{
  "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.
✅ XSLT Transform Response
{
  "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
✅ Schema Mapping Response
{
  "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": "~"
  }
}
✅ EDI Conversion Response
{
  "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)
⚡ Smart Rate Limiting

Titan usa algoritmos adaptativos que ajustan automáticamente los límites según la carga del sistema y el comportamiento del cliente.