Pillar page

Integração de sistemas empresariais

Ligamos ERP, CRM, sistemas contabilísticos, RH/folha de salários, registos comerciais, Microsoft Graph, Salesforce, SAP. Integrações através de APIs, filas, ETL e webhooks — com total controlo de qualidade, audit trail e monitorização em produção.

Uma empresa de média dimensão opera entre uma dúzia e várias dezenas de aplicações de negócio. Cada uma armazena fragmentos dos mesmos dados — cliente, fatura, colaborador, encomenda. Sem integração, os colaboradores gastam horas todos os dias a reintroduzir, exportar e importar dados entre sistemas.

A integração de sistemas não é um luxo — é o alicerce da transformação digital. Com uma camada de integração bem desenhada: um cliente adicionado no CRM aparece no ERP sem intervenção, uma fatura emitida na contabilidade atualiza o dashboard financeiro do CEO, o estado de uma encomenda é consistente entre loja online, armazém e apoio ao cliente.

Porque é a integração difícil?

Cada sistema tem o seu próprio modelo de dados, o seu nome para o mesmo campo, a sua sequência de operações, os seus limites de API (rate limits, latência, erros transitórios). Dois sistemas podem parecer „compatíveis" em teoria, mas na prática exigem semanas de trabalho em mapeamentos, transformações, tratamento de edge-cases e resolução de conflitos.

A segunda camada de dificuldade é a fiabilidade em produção. Uma integração que funciona corretamente no ambiente de desenvolvimento é cerca de 30% do caminho. Os restantes 70% são o tratamento de situações excecionais: o sistema externo está indisponível, mudou o contrato da API, devolve dados inesperados, surge um novo cliente no CRM com caracteres que o ERP legacy não consegue tratar. Cada caso destes precisa de reflexão, um teste e um alerta quando acontecer.

Tipos de integração

Seis padrões fundamentais. Na maioria dos projetos combinamos vários, escolhendo o método certo para cada caso.

REST API / GraphQL

Comunicação síncrona entre aplicações. JSON como formato de troca, OAuth2/JWT para autorização, OpenAPI/Swagger para documentação. A escolha mais comum para sistemas cloud modernos.

Filas de mensagens

RabbitMQ, Redis Streams, Kafka — troca assíncrona quando o remetente não espera pelo recetor. Ideal para notificações, eventos de negócio, operações de longa duração. Garantia de entrega + retry.

ETL / ELT

Carregamento em lote de dados para um data warehouse (Snowflake, BigQuery, Redshift, PostgreSQL on-premise). Airflow ou dbt como orquestrador, validação de qualidade de dados (Great Expectations), monitorização de lineage.

Webhooks

Notificações push de um sistema de origem (Stripe, GitHub, Slack, Salesforce) para a nossa aplicação. Verificação de assinatura HMAC, idempotência, dead-letter queue para entregas falhadas.

SOAP / XML

Sistemas enterprise legacy (SAP, Oracle, banca, seguros) — suporte completo de WSDL, validação XSD, WS-Security. Adaptador para protocolos modernos no resto do sistema.

Bases de dados — replicação, CDC

Change Data Capture (Debezium, AWS DMS) para replicação em streaming de alterações de uma base de origem para a destino. Replicação lógica do PostgreSQL para alta disponibilidade e relatórios.

Seis desafios produtivos chave

Coisas a que prestamos atenção em cada projeto de integração. Falhar em alguma delas = bomba-relógio.

Idempotência

Cada pedido executado várias vezes produz o mesmo resultado. Chaves de idempotência nos cabeçalhos, deduplicação ao nível da aplicação, transações em torno de operações críticas.

Retry e backoff

Erros transitórios de rede são a norma. Exponential backoff (1s, 2s, 4s, 8s…), jitter para evitar thundering herd, circuit breaker após N tentativas falhadas.

Mapeamento e transformações

O sistema A chama ao campo "client_id", o sistema B "customerId", o sistema C "id_klienta". Um catálogo central de mapeamentos, transformações num só sítio, testes para cada transformação.

Eventual consistency

Os dados em dois sistemas nunca são 100% consistentes em tempo real. Aceitamos latência (tipicamente segundos), monitorizamos o drift e alertamos em divergências prolongadas.

Auditoria e conformidade

Cada operação de integração regista: quem/o quê/quando/de onde/para onde, payload (anonimizado se contém PII), resultado. O audit log cumpre requisitos do RGPD e da ISO 27001.

Escala e custo

As integrações crescem com o negócio. Escala horizontal (mais instâncias), rate limiting (proteção contra excesso de pedidos), monitorização de custo por integração.

Como entregamos um projeto de integração

  1. Discovery (1-2 semanas): mapeamento dos fluxos de dados atuais, identificação da fonte de verdade para cada entidade, recolha dos contratos de API, avaliação de riscos e dependências.
  2. Desenho da arquitetura (1 semana): escolha de padrões (síncrono vs. assíncrono, push vs. pull, hub-and-spoke vs. ponto-a-ponto), esquema do audit log, plano de monitorização.
  3. Piloto numa única entidade (2-3 semanas): entregamos a integração para um tipo de dados (ex. clientes) end-to-end. Validação de contratos, testes de carga, dry-run em ambiente de teste.
  4. Expansão às restantes entidades (4-8 semanas): sincronizações seguintes (faturas, encomendas, produtos) com o mesmo padrão. Cada rollout precedido de Change Request e testes de regressão.
  5. Migração de dados históricos (1-3 semanas): transferência dos dados existentes. Dry-run, auditoria, plano de rollback. Migração incremental ou numa janela de serviço.
  6. Hypercare (4 semanas em produção): monitorização intensiva, resposta rápida a incidentes, afinação de alertas. Após hypercare, transição para manutenção standard.

Exemplos de integrações entregues

KRS + CRBR — RejestrFirm

Microsserviço que liga dados do Registo Comercial polaco (740k+ empresas) ao Registo Central de Beneficiários Efetivos. Smart caching (24h), dual-source com fallback automático, 15+ endpoints REST. Utilizado em processos KYC, verificação de contrapartes e relatórios de conformidade.

SSO em múltiplas aplicações

Plataforma Keycloak central (realm eskom-ai) integrada com uma dúzia de aplicações cliente. OAuth2/OIDC + PKCE, login social (Google, Microsoft, Apple, Facebook), provisionamento de utilizadores, faturação baseada no uso de tokens LLM. Single sign-on em todos os produtos ESKOM AI.

Microsoft Graph — calendários, e-mail, OneDrive

Integração com o Microsoft 365 para automatização de calendário (assistente de IA a marcar reuniões), envio de e-mail transacional, arquivo de documentos. OAuth2 com delegated permissions, refresh tokens no Vault, monitorização dos rate limits da Graph API.

LLM Proxy — routing multi-provider

Fila central que liga vários fornecedores de LLM (Anthropic, OpenAI, Ollama local). Routing por tarefa (simples — modelo local, complexa — Claude Opus), cache de respostas, monitorização de custos por projeto, fail-over entre fornecedores.

Perguntas frequentes

O que significa integração de sistemas?
A integração de sistemas é o processo de ligar duas ou mais aplicações para que possam trocar dados, despoletar eventos umas nas outras e manter consistência. Na prática: quando um cliente é adicionado no CRM, aparece automaticamente no ERP; quando uma fatura é emitida na contabilidade, os dados fluem para o CRM e para a analítica. Sem integração, a empresa manuseia dados manualmente (exportações CSV, cópia entre sistemas), o que produz erros, atrasos e custos.
Que tecnologias de integração utilizam?
A escolha tecnológica depende do contexto: REST API e webhooks para sistemas cloud modernos, SOAP/XML para ERP/banca legacy, filas de mensagens (RabbitMQ, Redis Streams, Kafka) para troca assíncrona, ETL/ELT para alimentação de data warehouse, GraphQL quando o cliente quer flexibilidade. Misturamos frequentemente abordagens — síncrono onde o utilizador espera por um resultado, assíncrono onde importa o throughput.
As integrações partem-se quando os sistemas de origem são atualizados?
É um dos maiores problemas da integração — e é por isso que construímos adaptadores com isolamento (anti-corruption layer). Um sistema externo muda o contrato → só o adaptador muda, o resto da integração não é afetado. Adicionalmente: os contratos são versionados (v1, v2), os testes de integração correm diariamente contra APIs sandbox, alertas Sentry/Wazuh disparam em alterações de formato de resposta. O cliente fica a saber do problema antes que chegue aos utilizadores finais.
Quanto tempo demora uma integração típica?
Integrações simples (um sistema com outro, ~5 endpoints, sincronização unidirecional) são entregues em 1-2 semanas. Integrações complexas (sincronização bidirecional, uma dúzia de entidades, mapeamentos, transformações, deduplicação) demoram 4-8 semanas. Integrações multi-sistema (hub-and-spoke) são planeadas por fases, entregando valor de negócio em iterações de 2-3 semanas.
E os dados históricos numa nova integração?
Cada projeto de integração inclui uma fase separada de migração histórica. Primeiro uma análise completa: quantos registos, que tipos de dados, onde estão os duplicados, que campos são obrigatórios vs. opcionais. Depois um script de migração com dry-run, audit trail (o que foi movido, o que foi rejeitado, porquê) e plano de rollback. A migração ocorre numa janela de serviço ou de forma incremental, consoante o risco de negócio.
A integração tem de correr 24/7?
Depende da criticidade de negócio. Processos online (pagamentos, autorizações) exigem alta disponibilidade — desenhamo-los com redundância (load balancer, várias instâncias, health checks, auto-restart). Processos noturnos (relatórios, sincronizações em lote) podem correr em janelas de serviço. Classificamos cada integração com um SLA: tempo de resposta p95, downtime mensal aceitável, RTO/RPO.
Como monitorizam integrações em produção?
Cada integração emite métricas para o Prometheus (request rate, error rate, latência p50/p95/p99), logs para um SIEM central (Wazuh), erros para o Sentry. Os alertas disparam em quedas de throughput, picos de error-rate ou timeouts. Um dashboard mostra o estado de todas as integrações num só sítio — o operador vê, por exemplo, que a integração com o fornecedor X tem 3% de erros enquanto as restantes correm sem problemas.
E a segurança em integrações externas?
Cada integração usa o princípio do menor privilégio. As chaves e tokens ficam no HashiCorp Vault (não em ficheiros .env, não em código). A comunicação é sempre TLS 1.2+, os certificados são verificados (nunca verify=False). Webhooks de entrada têm verificação de assinatura HMAC. Em caso de fuga de token — rotação imediata, o audit log mostra o que aconteceu e quando.
Em que se distingue a abordagem de integração da ESKOM AI de um ESB clássico (Enterprise Service Bus)?
Os ESB clássicos (Mule, BizTalk, WebMethods) são plataformas monolíticas — caras em licenciamento e a exigir uma equipa dedicada. O nosso modelo: microsserviços de integração, cada integração como um componente separado com o seu próprio deploy e monitorização, infraestrutura construída sobre open source (FastAPI, RabbitMQ, Redis, PostgreSQL, Vault). Menor custo de licenciamento, manutenção mais fácil, sem vendor lock-in. Para alguns clientes é um argumento financeiro, para outros — estratégico.
Integram com sistemas públicos polacos (KRS, CRBR, KSeF, ePUAP)?
Sim. Em produção temos um microsserviço integrado com KRS e CRBR (rejestrfirm.eskom.ai — dados de 740k+ empresas incluindo beneficiários efetivos). KSeF (faturação eletrónica polaca) — temos componentes de integração prontos no projeto Kontroling. ePUAP, e-doręczenia — disponíveis via Microsoft Graph API e integrações diretas. Total conformidade com a lei polaca (RGPD, obrigações de reporte).

Tem um projeto de integração?

Começamos com uma auditoria gratuita — mapeamos os fluxos de dados atuais, identificamos os pontos de estrangulamento e propomos um plano em fases claras.