JedIN Integration — Stack Tecnológica Completa do iPaaS Core
O iPaaS Core do JedIN
O produto JedIN Integration é o coração da plataforma — o iPaaS (Integration Platform as a Service) que concorre diretamente com SAP CPI, Mulesoft e n8n. Este post documenta a stack tecnológica completa, camada por camada, com versões, bibliotecas e arquivos de referência.
É uma wiki técnica orientada a arquitetos, tech leads e engenheiros que precisam de visibilidade total sobre o que roda em produção.
Linguagens de Programação
| Camada | Linguagem | Versão |
|---|---|---|
| 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 em flows | JavaScript / Groovy (sandbox) | — |
| MCP servers | JavaScript ES2022 | Node 20 |
TypeScript é a linguagem principal do Control Plane e do Frontend. Java 21 aparece apenas no Data Plane — Apache Camel K roda sobre Quarkus com startup ~1 segundo.
Presentation Layer — Frontend
Framework e Renderização
| Tecnologia | Versão | Uso |
|---|---|---|
| Next.js | 14.1 | App Router, SSR/SSG, middleware i18n |
| React | 18.2 | UI library |
| TypeScript | 5.3 | Tipagem estática |
Flow Designer (Canvas Visual)
O coração do produto:
- React Flow 11.10.2 — canvas de nodes e edges
- Zustand 4.4.7 + Immer 10.0.3 — state management imutável em
apps/web/stores/flow-designer.store.ts - Monaco Editor (
@monaco-editor/react4.7) — editor de código para scripts, XSLT, expressões - Node types registrados (13+): action, connector, trigger, transform, router, script, participant, event, container, integration-process, exception-subprocess, gateway, local-integration, annotation
Stores adicionais: auth, deployment, simulation, target-system, r2cx-project.
UI e Styling
| Tecnologia | Versão | Uso |
|---|---|---|
| Tailwind CSS | 3.4.1 | Utility-first styling |
| shadcn/ui | latest | Padrão de componentes |
| Radix UI | latest | Primitivos (dialog, dropdown, select, slot, toast) |
| Lucide React | 0.309 | Ícones |
| next-themes | 0.2.1 | Dark/light mode |
Data, Forms e Real-time
- TanStack React Query 5.17 — server state, cache, refetch
- Socket.io-client 4.8 — deploy status, colaboração 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 — documentação inline
Management Layer — Backend
Framework e Runtime
| Tecnologia | Versão | Uso |
|---|---|---|
| Node.js | 20 LTS | Runtime |
| NestJS | 10.3 | Framework modular |
| Express | 5.2.1 | HTTP adapter |
| TypeScript | 5.3 | Linguagem |
Persistência e ORM
- Prisma 5.8 — ORM type-safe, schema em
apps/api/prisma/schema.prisma(4.364 linhas) - @prisma/client — cliente gerado
- pg / pgcrypto — Postgres driver + criptografia de secrets
Async, Queue e Jobs
- BullMQ 5.1 + @nestjs/bullmq 10 — filas de execução, webhooks, notificações, 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 e Segurança
| Tecnologia | Versão | 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 |
Integração com Kubernetes
- @kubernetes/client-node — cliente oficial K8s
- Localização:
apps/api/src/modules/deployment/kubernetes.client.ts - Gerencia CRDs Camel K (
Integration,IntegrationKit,Kamelet) e KEDAScaledObject
Utilitários Backend
| Lib | Versão | Uso |
|---|---|---|
| pdfkit | 0.15 | Geração 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 customizados
Flow Compiler (JSON → Camel YAML)
Localização: packages/flow-engine/ · 864 testes Vitest
O compilador transforma o JSON do flow designer em manifests executáveis:
| Arquivo | Responsabilidade |
|---|---|
compiler/camel-generator.ts | 40+ conversores (EIPs, transformers, encoders, crypto, validators) → Camel YAML |
compiler/k8s-manifests.ts | Gera CRDs camel.apache.org/v1/Integration + keda.sh/v1alpha1/ScaledObject |
compiler/parser.ts | Parse e normalização do flow JSON |
compiler/planner.ts | Planejamento de execução |
compiler/validator.ts | Validação 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
| Tecnologia | Versão | Uso |
|---|---|---|
| Apache Camel K | 2.9.x | Integration Engine (300+ conectores) |
| Quarkus | latest | Runtime JVM (~1s startup) |
| Java | 21 LTS | Linguagem |
| KEDA | 1.x | Event-driven auto-scaling |
| Kubernetes (EKS) | 1.35 AL2023 | Container orchestration |
CRDs Camel K usadas
| CRD | Descrição |
|---|---|
| IntegrationPlatform | Configuração por namespace (registry, trait defaults) |
| Integration | Flow compilado (source + traits + dependências) |
| IntegrationKit | Imagem base com deps Maven resolvidas |
| Kamelet | Template reutilizável de conector |
KEDA Auto-scaling
- Polling interval: 30s
- Cooldown period: 300s
- Min replicas: 0 (scale-to-zero em tier Free)
- Max replicas: 50 (tier Enterprise)
- Fallback replicas: 3 (se scaler falhar)
Multi-tenancy no Runtime
- Free/Starter — namespace compartilhado
jedin - Professional — namespace-per-tenant (
jedin-tenant-<id>) - Enterprise — dedicated namespace + ResourceQuota + NetworkPolicy + BYOK
Data Layer
| Store | Tecnologia | Porta dev | Uso |
|---|---|---|---|
| Primary DB | PostgreSQL | 16, porta 5433 | Transactional, RLS multi-tenant, partitioning |
| Cache / Sessions | Redis | 7, porta 6379 | BullMQ backend, DLQ, cache |
| Object Storage | MinIO (S3-compat) | porta 9000 | Artifacts, flow definitions, execution logs |
| Event Stream | Apache Kafka | opcional | DLQ para >100k msg/dia |
| Analytics | ClickHouse | opcional | Métricas agregadas, long-term storage |
Row-Level Security (RLS)
Toda tabela com tenant_id tem política RLS ativa:
CREATE POLICY tenant_isolation ON flows
FOR ALL
USING (tenant_id = current_setting('app.tenant_id')::uuid);
Setting injetada por Tenant Middleware do NestJS em cada request: SET app.tenant_id = '<uuid>'.
Partitioning
Tabelas de alto volume (execution logs, audit, message traces) usam particionamento por data. Scripts em apps/api/prisma/scripts/.
Connector SDK
Localização: packages/connector-sdk/ · 327 testes Vitest
Conectores built-in por categoria
| Categoria | 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 |
Ecossistema MCP (Model Context Protocol)
30 servidores MCP · 307 tools totais
Core
| MCP | Tools | Função |
|---|---|---|
| mcp-jedin | 79 | Core iPaaS API + Playwright híbrido (Live View) |
| mcp-shared | base | Playwright browser management compartilhado |
Integração (amostra)
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 e CI/CD
| Ferramenta | 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 Desenvolvimento
docker-compose.dev.yml sobe:
- Postgres 16 (porta 5433)
- Redis 7 (porta 6379)
- MinIO (portas 9000/9001)
- Camel standalone (JBang ou Camel Main, Alpine JRE 21)
- Jaeger, Prometheus, Grafana
Produção (AWS)
| Recurso | Detalhe |
|---|---|
| EKS | 1.35 AL2023 |
| Node groups | m7i-flex.large (dedicado), t3-spot (overflow), openclaw-spot t3a.xlarge |
| Auto-schedule | Lambda jedin-scheduler — Mon-Fri 08:00-23:30 BRT, weekends OFF |
| IRSA | jedin-dev-ebs-csi-role para EBS CSI |
| Custo total | ~USD 299/mês (dev env) |
Quality Gates
| Métrica | Valor |
|---|---|
| Test suites | 129+ |
| Testes totais | 3.558+ |
| Coverage overall | 80% (target 85%) |
| Coverage services | 80% (target 90%) |
| TypeScript | strict mode |
| Lint | ESLint + Prettier (pre-commit) |
Arquivos-chave para Navegação
- 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)
Resumo
O JedIN Integration é uma arquitetura de 4 camadas com separação rígida:
- Presentation — Next.js 14 + React Flow + Zustand
- Management — NestJS 10 + Prisma 5 + BullMQ + JWT multi-estratégia
- Runtime — Camel K 2.9 + Quarkus + Java 21 + KEDA
- Data — PostgreSQL 16 (RLS) + Redis 7 + MinIO + Kafka/ClickHouse opcional
A stack é opinionada, madura e otimizada para multi-tenancy real com isolamento por tier (RLS → schema-per-tenant → database-per-tenant + namespace K8s dedicado).
Para os produtos satélites que rodam sobre este core, veja:
Related Articles
JedIN Monitoramento em Tempo Real — 1655 Mensagens, 92 Artefatos de Runtime
Dentro do dashboard de monitoramento do JedIN: 1655 mensagens processadas em 30 dias, 92 artefatos de runtime rastreados, visibilidade de execução em tempo real com atualização sub-segundo.
JedIN Marketplace — 15 Pacotes, 6 Templates, Conectores Empresariais
Explorando o marketplace de integração do JedIN com 15 pacotes curados, 6 templates prontos para uso e conectores altamente avaliados para REST, JDBC e PIX/Open Banking.
JedIN Design de Integração — 101 Pacotes Gerenciando Fluxos Empresariais
Uma análise aprofundada do workspace Design do JedIN com 101 pacotes de integração ativos, cobrindo importações SAP CPI, pipelines de dados e gerenciamento de fluxos empresariais em escala.