JedIN Integration — Stack Tecnológica Completa del iPaaS Core
El iPaaS Core de JedIN
El producto JedIN Integration es el corazón de la plataforma — el iPaaS (Integration Platform as a Service) que compite directamente con SAP CPI, Mulesoft y n8n. Este post documenta la stack tecnológica completa, capa por capa, con versiones, bibliotecas y archivos de referencia.
Es una wiki técnica orientada a arquitectos, tech leads e ingenieros que necesitan visibilidad total sobre lo que se ejecuta en producción.
Lenguajes de Programación
| Capa | Lenguaje | Versión |
|---|---|---|
| Frontend | TypeScript | 5.3 |
| Backend (Control Plane) | TypeScript | 5.3 |
| Runtime (Data Plane) | Java | 21 LTS |
| Flow DSL compilada | YAML (Camel K routes) | — |
| Infra | YAML (K8s manifests) | — |
| Scripts custom en flows | JavaScript / Groovy (sandbox) | — |
| MCP servers | JavaScript ES2022 | Node 20 |
TypeScript es el lenguaje principal del Control Plane y del Frontend. Java 21 aparece solo en el Data Plane — Apache Camel K corre sobre Quarkus con arranque de ~1 segundo.
Presentation Layer — Frontend
Framework y Renderizado
| Tecnología | Versión | Uso |
|---|---|---|
| Next.js | 14.1 | App Router, SSR/SSG, middleware i18n |
| React | 18.2 | UI library |
| TypeScript | 5.3 | Tipado estático |
Flow Designer (Canvas Visual)
El corazón del producto:
- React Flow 11.10.2 — canvas de nodes y edges
- Zustand 4.4.7 + Immer 10.0.3 — state management inmutable en
apps/web/stores/flow-designer.store.ts - Monaco Editor (
@monaco-editor/react4.7) — editor de código para scripts, XSLT, expresiones - Node types registrados (13+): action, connector, trigger, transform, router, script, participant, event, container, integration-process, exception-subprocess, gateway, local-integration, annotation
Stores adicionales: auth, deployment, simulation, target-system, r2cx-project.
UI y Styling
| Tecnología | Versión | Uso |
|---|---|---|
| Tailwind CSS | 3.4.1 | Utility-first styling |
| shadcn/ui | latest | Patrón de componentes |
| Radix UI | latest | Primitivos (dialog, dropdown, select, slot, toast) |
| Lucide React | 0.309 | Íconos |
| next-themes | 0.2.1 | Dark/light mode |
Data, Forms y Real-time
- TanStack React Query 5.17 — server state, caché, refetch
- Socket.io-client 4.8 — deploy status, colaboración real-time
- react-hook-form 7.49 + Zod 3.22.4 — forms validados
- next-intl 3.4 — i18n pt-BR / en-US / es, timezone America/Sao_Paulo
Observability Client-side
- @sentry/nextjs 10.40 — error tracking
- html-to-image 1.11 — screenshots de flows
- react-markdown 10.1 + remark-gfm — documentación inline
Management Layer — Backend
Framework y Runtime
| Tecnología | Versión | Uso |
|---|---|---|
| Node.js | 20 LTS | Runtime |
| NestJS | 10.3 | Framework modular |
| Express | 5.2.1 | HTTP adapter |
| TypeScript | 5.3 | Lenguaje |
Persistencia y ORM
- Prisma 5.8 — ORM type-safe, schema en
apps/api/prisma/schema.prisma(4,364 líneas) - @prisma/client — cliente generado
- pg / pgcrypto — driver Postgres + cifrado de secrets
Async, Queue y Jobs
- BullMQ 5.1 + @nestjs/bullmq 10 — colas de ejecución, webhooks, notificaciones, DLQ
- @nestjs/schedule 4.x — cron jobs (flow triggers, scheduled integrations)
- ioredis 5.3.2 — cliente Redis
- Worker app separado:
apps/worker/(NestJS standalone)
Auth y Seguridad
| Tecnología | Versión | Uso |
|---|---|---|
| @nestjs/jwt | 10.2 | Access token (15min) + Refresh token (7d) |
| Passport | 0.7 | Local, JWT, LDAP, OpenID |
| passport-jwt | 4.0.1 | JWT strategy |
| ldapjs | 3.0.7 | LDAP/AD corporativo |
| openid-client | 6.8.2 | OpenID Connect SSO |
| otplib | 13.3 | MFA / TOTP |
| bcrypt | 5.1.1 | Password hashing |
| Helmet | 8.1 | Security headers |
Integración con Kubernetes
- @kubernetes/client-node — cliente oficial K8s
- Ubicación:
apps/api/src/modules/deployment/kubernetes.client.ts - Gestiona CRDs Camel K (
Integration,IntegrationKit,Kamelet) y KEDAScaledObject
Utilidades Backend
| Lib | Versión | Uso |
|---|---|---|
| pdfkit | 0.15 | Generación de PDFs |
| pdf-parse | 2.4 | Parsing de PDFs |
| mammoth | 1.12 | DOCX → HTML/texto |
| xlsx | 0.18 | Excel |
| fast-xml-parser | 5.3 | XML/SOAP |
| cheerio | 1.0 | HTML parsing |
| node-forge | 1.3 | Crypto (X.509, RSA) |
| class-validator | 0.14 | DTOs validation |
Observability
- OpenTelemetry SDK + OTLP HTTP exporter
- Jaeger — distributed tracing
- Prometheus + Grafana — métricas
- @sentry/nestjs 10.40 — error tracking
- Health checks custom
Flow Compiler (JSON → Camel YAML)
Ubicación: packages/flow-engine/ · 864 tests Vitest
El compilador transforma el JSON del flow designer en manifests ejecutables:
| Archivo | Responsabilidad |
|---|---|
compiler/camel-generator.ts | 40+ conversores (EIPs, transformers, encoders, crypto, validators) → Camel YAML |
compiler/k8s-manifests.ts | Genera CRDs camel.apache.org/v1/Integration + keda.sh/v1alpha1/ScaledObject |
compiler/parser.ts | Parse y normalización del flow JSON |
compiler/planner.ts | Planificación de ejecución |
compiler/validator.ts | Validación schema + semántica |
iflow-parser.ts / iflow-generator.ts | Import/export de SAP CPI iFlow (ZIP) |
Resource limits por tier:
| Tier | CPU | RAM | Replicas |
|---|---|---|---|
| Free | 100m | 128Mi | 0–1 |
| Starter | 250m | 256Mi | 0–3 |
| Professional | 500m | 512Mi | 0–10 |
| Enterprise | 1000m | 1Gi | 0–50 |
Runtime Layer — Data Plane
| Tecnología | Versión | Uso |
|---|---|---|
| Apache Camel K | 2.9.x | Integration Engine (300+ conectores) |
| Quarkus | latest | Runtime JVM (~1s arranque) |
| Java | 21 LTS | Lenguaje |
| KEDA | 1.x | Event-driven auto-scaling |
| Kubernetes (EKS) | 1.35 AL2023 | Container orchestration |
CRDs Camel K usadas
| CRD | Descripción |
|---|---|
| IntegrationPlatform | Configuración por namespace (registry, trait defaults) |
| Integration | Flow compilado (source + traits + dependencias) |
| IntegrationKit | Imagen base con deps Maven resueltas |
| Kamelet | Template reutilizable de conector |
KEDA Auto-scaling
- Polling interval: 30s
- Cooldown period: 300s
- Min replicas: 0 (scale-to-zero en tier Free)
- Max replicas: 50 (tier Enterprise)
- Fallback replicas: 3 (si scaler falla)
Multi-tenancy en el Runtime
- Free/Starter — namespace compartido
jedin - Professional — namespace-per-tenant (
jedin-tenant-<id>) - Enterprise — dedicated namespace + ResourceQuota + NetworkPolicy + BYOK
Data Layer
| Store | Tecnología | Puerto dev | Uso |
|---|---|---|---|
| Primary DB | PostgreSQL | 16, puerto 5433 | Transactional, RLS multi-tenant, partitioning |
| Cache / Sessions | Redis | 7, puerto 6379 | BullMQ backend, DLQ, caché |
| Object Storage | MinIO (S3-compat) | puerto 9000 | Artifacts, flow definitions, execution logs |
| Event Stream | Apache Kafka | opcional | DLQ para >100k msg/día |
| Analytics | ClickHouse | opcional | Métricas agregadas, long-term storage |
Row-Level Security (RLS)
Toda tabla con tenant_id tiene política RLS activa:
CREATE POLICY tenant_isolation ON flows
FOR ALL
USING (tenant_id = current_setting('app.tenant_id')::uuid);
Setting inyectada por Tenant Middleware de NestJS en cada request: SET app.tenant_id = '<uuid>'.
Partitioning
Tablas de alto volumen (execution logs, audit, message traces) usan particionamiento por fecha. Scripts en apps/api/prisma/scripts/.
Connector SDK
Ubicación: packages/connector-sdk/ · 327 tests Vitest
Conectores built-in por categoría
| Categoría | Conectores |
|---|---|
| HTTP | REST, Webhook, Timer |
| Database | PostgreSQL, MySQL |
| AWS | S3, SQS, SNS, DynamoDB, Lambda |
| Azure | Service Bus, Storage, Event Hubs |
| GCP | Pub/Sub, BigQuery, Storage |
| Messaging | AMQP, Kafka (KafkaJS), IMAP, SFTP (ssh2-sftp-client 10) |
| Enterprise | SAP CPI, TOTVS, Vtex, C4C, S/4HANA, ABAP |
| Format/Transform | SOAP (soap npm), XSLT (xslt-processor), OpenPGP 5.11, JSON, XML, CSV |
Ecosistema MCP (Model Context Protocol)
30 servidores MCP · 307 herramientas totales
Core
| MCP | Tools | Función |
|---|---|---|
| mcp-jedin | 79 | Core iPaaS API + Playwright híbrido (Live View) |
| mcp-shared | base | Gestión compartida de navegador Playwright |
Integración (muestra)
mcp-abap, mcp-s4hana, mcp-cpi, mcp-sac, mcp-totvs, mcp-vtex, mcp-salesforce, mcp-hubspot, mcp-jira, mcp-slack, mcp-whatsapp, mcp-postgres, mcp-mongodb, mcp-snowflake, mcp-shopify, mcp-stripe, mcp-pagseguro, mcp-mercadolivre, mcp-emarsys, mcp-powerbi, mcp-powerapps, mcp-github, mcp-sefaz.
DevOps & Deploy
Build y CI/CD
| Herramienta | Uso |
|---|---|
| pnpm workspace | Monorepo |
| Turbo | Build pipeline (turbo.json) |
| kaniko | Build in-cluster (envFrom aws-creds) |
| AWS ECR | Container registry (005250954903.dkr.ecr.sa-east-1) |
| GitHub Actions | CI/CD |
| Husky + lint-staged | Git hooks |
Ambiente de Desarrollo
docker-compose.dev.yml levanta:
- Postgres 16 (puerto 5433)
- Redis 7 (puerto 6379)
- MinIO (puertos 9000/9001)
- Camel standalone (JBang o Camel Main, Alpine JRE 21)
- Jaeger, Prometheus, Grafana
Producción (AWS)
| Recurso | Detalle |
|---|---|
| EKS | 1.35 AL2023 |
| Node groups | m7i-flex.large (dedicado), t3-spot (overflow), openclaw-spot t3a.xlarge |
| Auto-schedule | Lambda jedin-scheduler — Lun-Vie 08:00-23:30 BRT, fines de semana OFF |
| IRSA | jedin-dev-ebs-csi-role para EBS CSI |
| Costo total | ~USD 299/mes (dev env) |
Quality Gates
| Métrica | Valor |
|---|---|
| Test suites | 129+ |
| Tests totales | 3,558+ |
| Coverage overall | 80% (target 85%) |
| Coverage services | 80% (target 90%) |
| TypeScript | strict mode |
| Lint | ESLint + Prettier (pre-commit) |
Archivos Clave para Navegación
- Prisma schema:
apps/api/prisma/schema.prisma - Flow Designer store:
apps/web/stores/flow-designer.store.ts - Canvas:
apps/web/components/flow-designer/canvas.tsx - Camel generator:
packages/flow-engine/src/compiler/camel-generator.ts - K8s client:
apps/api/src/modules/deployment/kubernetes.client.ts - Módulos NestJS:
apps/api/src/modules/(171+ services)
Resumen
JedIN Integration es una arquitectura de 4 capas con separación rígida:
- Presentation — Next.js 14 + React Flow + Zustand
- Management — NestJS 10 + Prisma 5 + BullMQ + JWT multi-estrategia
- Runtime — Camel K 2.9 + Quarkus + Java 21 + KEDA
- Data — PostgreSQL 16 (RLS) + Redis 7 + MinIO + Kafka/ClickHouse opcional
La stack es opinada, madura y optimizada para multi-tenancy real con aislamiento por tier (RLS → schema-per-tenant → database-per-tenant + namespace K8s dedicado).
Para los productos satélite que corren sobre este core, ver:
Related Articles
JedIN Monitoreo en Tiempo Real — 1655 Mensajes, 92 Artefactos de Runtime
Dentro del dashboard de monitoreo de JedIN: 1655 mensajes procesados en 30 días, 92 artefactos de runtime rastreados, visibilidad de ejecución en tiempo real con actualización sub-segundo.
JedIN Marketplace — 15 Paquetes, 6 Templates, Conectores Empresariales
Explorando el marketplace de integración de JedIN con 15 paquetes curados, 6 templates listos para usar y conectores altamente calificados para REST, JDBC y PIX/Open Banking.
JedIN Diseño de Integración — 101 Paquetes Gestionando Flujos Empresariales
Una mirada profunda al workspace Design de JedIN con 101 paquetes de integración activos, cubriendo importaciones SAP CPI, pipelines de datos y gestión de flujos empresariales a escala.