CORTEX — connectors (padrão e específicos)
Versão: 0.1.4 · Data: 2026-10-13 · Status: Rascunho · Owner: Plataforma Caminho canônico:
cortex-docs/services/CONNECTORS.mdDocumentos irmãos:cortex-docs/ECOSYSTEM.md(catálogo §4, comunicação §5) ·cortex-docs/standards/UNISCALE_ENGINEERING_STANDARDS.md(nomenclatura §7, evento §28)
Este documento fixa o padrão de connector (regras comuns a todos) e descreve os três connectors em construção: academic-connector, crm-connector, payment-connector. Promove a regras endereçáveis o que já está assentado no ECOSYSTEM §4/§5; o desenho interno de cada integração externa fica em aberto (§Fronteiras). Rascunho pendente de revisão — não inventar o que está marcado como em aberto.
1. Mão-dupla, sem banco, tradutor (Obrigatório)
Connector é mão-dupla por construção e sem banco (ECOSYSTEM §4). É tradutor, não dono de dado: o estado de negócio vive nos serviços, nunca no connector. Ele não persiste verdade — converte entre o contrato interno do CORTEX e a API do sistema externo, nos dois sentidos. (Distingue-se de adapter, que só traduz/normaliza formato e não integra — UNISCALE §7.)
2. Consome fila e expõe chamada direta (Obrigatório)
Todo connector tem os dois modos (ECOSYSTEM §4/§5):
- Consome fila — para empurrar fatos do CORTEX ao sistema externo (reage a evento; ex.: mover card, criar matrícula). Conector novo = fila nova no exchange, sem mexer no publicador.
- Expõe chamada direta — para responder consulta na hora (síncrono quando há dependência de resultado; ex.: o
ai-salespergunta algo ao terceiro via connector).
Entrega de fila é at-least-once com consumer idempotente, retry com limite + backoff e DLQ obrigatória (UNISCALE §29.3) — connector que empurra fato a terceiro não pode duplicar a ação por reentrega.
3. Nome por domínio, não por fornecedor (Obrigatório)
O connector é nomeado por domínio / sistema externo (<external-system>-connector, UNISCALE §7), e o contrato dos serviços internos é por domínio, não por fornecedor. Trocar o fornecedor (de CRM, de gateway) é trocar/reconfigurar o connector — não renomear contrato nem mexer em quem o consome (ECOSYSTEM §4). É o que mantém o fornecedor substituível.
Os três connectors
academic-connector — jacad (autoridade acadêmica)
Mão-dupla real com o jacad: lê (cadastro, contrato) e escreve (matrícula). O jacad é a autoridade da verdade acadêmica (homologado MEC — ECOSYSTEM §1/§3): o CORTEX comanda a matrícula pela API de escrita, mas a verdade do contrato resultante continua sendo do jacad. Serve o order-service na receita de matrícula.
crm-connector — bitrix24 (janela de gestão)
Empurra eventos do CORTEX que nascem e movem cards no CRM (hoje bitrix24). O bitrix é janela de gestão/acompanhamento, não dono da trilha do lead (essa é do tracking — ECOSYSTEM §3). Pipes e raias são configurados no institutional; o connector só aplica o movimento que o fato manda. Regras detalhadas em cortex-docs/services/CRM_CONNECTOR.md (como o payment-connector aponta para PAYMENT_SERVICE.md).
payment-connector — um por gateway
Um por gateway, atrás do payment-service (regras: cortex-docs/services/PAYMENT_SERVICE.md §5). O gateway é substituível; o payment-service orquestra e o connector traduz a mecânica do gateway (ECOSYSTEM §6). O primeiro é o dom-pagamentos-connector (Dom Pagamentos).
É o caso mais literal do §1 e do §2 deste documento: o connector é a fronteira nos dois sentidos — as requisições ao gateway (autorizar, capturar, cancelar) saem por ele, o webhook do gateway entra por ele, e a resposta que o gateway espera volta por ele. Ele traduz e repassa; quem decide e persiste é o payment-service. Regras detalhadas em PAYMENT_SERVICE.md §5 e §7.
Fronteiras a definir (não inventar)
- Contrato exato de cada API externa (jacad, bitrix24, cada gateway) — endpoints, autenticação, mapeamento campo a campo: a definir por integração, lendo a API real. Não presumir.
- Mapa de eventos → ações por connector (qual fato move qual card, qual fato dispara matrícula) — depende dos fluxos, ainda não fechados.
- Connectors de canal (
whatsapp-connectore futuros) — fora deste doc. Por decisão de arquitetura atual absorvem a governança de canal (entrega, opt-out, ritmo, status, demux); omessaging-serviceque a centralizaria é recomendado, não adotado (ECOSYSTEM §4/§7). Quem for construir um connector de canal lê a nota de recomendação do ECOSYSTEM §4 — esses controles (opt-out, ritmo por número, dedup, demux) passam a ser responsabilidade do connector, sob risco operacional/legal se ficarem de fora.
CHANGELOG
| Versão | Data | Resumo |
|---|---|---|
| 0.1.4 | 2026-10-13 | Editorial (sem mudança de regra): o verbete do crm-connector passa a apontar para o doc dedicado cortex-docs/services/CRM_CONNECTOR.md, que nasce com as regras específicas do CRM (janela não-dona, executor, card por referência, fatos consumidos) herdando este padrão §1–§3. Mesmo movimento do payment-connector → PAYMENT_SERVICE.md. PATCH. |
| 0.1.3 | 2026-07-23 | Editorial (sem mudança de regra): nomeia o primeiro payment-connector — dom-pagamentos-connector (Dom Pagamentos) — e explicita, na descrição dele, que o connector é a fronteira nos dois sentidos com o gateway (requisições saem por ele, webhook entra por ele, resposta ao gateway volta por ele), sendo o payment-service quem decide e persiste. Aplicação dos §1/§2 já existentes ao caso do gateway; regras detalhadas em PAYMENT_SERVICE.md §5/§7. PATCH. |
| 0.1.2 | 2026-06-18 | Editorial (sem mudança de regra): com o messaging-service rebaixado a recomendado/opcional (ECOSYSTEM §4/§7), a fronteira dos connectors de canal passa a dizer que eles absorvem a governança de canal por decisão atual, apontando a nota de recomendação (opt-out/ritmo/dedup/demux como responsabilidade do connector, sob risco se omitidos). PATCH. |
| 0.1.1 | 2026-06-17 | Editorial (sem mudança de regra): academic-connector passa a servir o order-service (ex-fulfillment-service). PATCH. |
| 0.1.0 | 2026-06-15 | Rascunho inicial dos connectors. Promove a @rule o padrão comum (ECOSYSTEM §4/§5): mão-dupla sem banco, tradutor não dono de dado (§1); consome fila para empurrar fato + expõe chamada direta para consulta, com idempotência/retry/DLQ (§2, UNISCALE §29.3); nome por domínio com fornecedor substituível (§3). Descreve academic-connector (jacad autoridade, lê+escreve matrícula), crm-connector (move cards no bitrix), payment-connector (um por gateway, atrás do payment-service). Lista como NÃO-inventar os contratos de API reais, o mapa evento→ação e os connectors de canal. Primeiras regras @rule da área connectors do namespace ecosystem. |