---
title: "kb/integracao-erp-frontend-sem-downtime"
description: "GHWD agent markdown twin"
canonical: https://ghwd.com.br/kb/integracao-erp-frontend-sem-downtime/
last-updated: 2026-09-10
---

# Como integrar ERP ao frontend sem downtime em produção?

Estratégias de integração ERP↔frontend (Next.js) com zero downtime — strangler fig, feature flags, filas, rollback e o middleware Synapse da GHWD.

- **Category:** Integrações & Infraestrutura
- **Date:** 10 de Setembro de 2026
- **Read time:** 9 min
- **Author:** Gustavo Hipólito (Lead Software Architect)
- **Tags:** ERP, Integração, Synapse, TOTVS, Zero downtime
- **Atualizado em:** 10 de Setembro de 2026

## TL;DR

Integrar ERP (TOTVS, SAP, Bling) a frontend Next.js sem downtime exige padrão strangler fig: middleware Synapse absorve tráfego legado enquanto rotas migram incrementalmente. Filas com retry e idempotency keys evitam pedidos duplicados; feature flags controlam rollout por % de usuários; contratos de API versionados permitem rollback instantâneo. Nunca aponte frontend direto ao ERP — sempre camada de abstração read/write segregada.

## 1. Por que integrações ERP derrubam produção

ERPs legados não foram projetados para tráfego web burst. Apontar Next.js direto à API on-premise causa: timeout em pico, lock de banco, pedidos duplicados em retry cliente e indisponibilidade total quando ERP entra em janela de backup. Big-bang cutover (desligar legado, ligar novo) é receita para incidente P1.

## 2. Padrão Strangler Fig com Synapse

O middleware **Synapse** da GHWD situa-se entre frontend e ERP. Inicialmente proxy transparente do legado; rotas migram uma a uma para handlers novos. Frontend consome sempre api.empresa.com/v1/* — implementação backend troca sem redeploy do Next.js.

- **Fase 1 — Read-only:** Catálogo e estoque via cache + polling ERP; zero writes.
- **Fase 2 — Write shadow:** Pedidos gravados em fila + ERP em paralelo shadow (validação).
- **Fase 3 — Write live:** Fila confirma ACK ERP; legado desligado por rota.

## 3. Filas, idempotência e retry

Todo POST de pedido carrega **idempotency key** (UUID derivado de session + cart hash). Fila (Redis, SQS ou RabbitMQ) persiste mensagem antes de chamar ERP. Retry exponencial com dead-letter queue para falhas permanentes. Frontend recebe 202 Accepted + tracking ID — nunca fica esperando ERP síncrono 30 s.

POST /v1/orders
Idempotency-Key: 7f3a9c2e-...
→ 202 { orderId, status: "processing" }
→ Webhook/polling atualiza status quando ERP confirma

## 4. Feature flags e rollback

Rollout de integração nova por percentual de tráfego (5% → 25% → 100%) via feature flag. Se error rate ERP spike, flag reverte em segundos — tráfego volta ao proxy legado. Contratos OpenAPI versionados (/v1, /v2) permitem coexistência durante transição.

## 5. Observabilidade e SLAs

Synapse exporta métricas: latência p95 ERP, taxa de retry, lag de fila, pedidos em dead-letter. Alertas PagerDuty/Slack quando lag > 5 min ou error rate > 1%. Runbooks documentam rollback em 3 passos — operação não depende de dev on-call para reverter flag.


## FAQ

### Synapse substitui o ERP?

Não. Synapse é camada de integração e orquestração. ERP continua fonte de verdade fiscal e estoque; Synapse traduz, cacheia, enfileira e protege o frontend de peculiaridades do backend legado.

### Integração síncrona ERP nunca é aceitável?

Leituras cacheadas (catálogo, preço TTL curto) podem ser síncronas. Writes (pedido, baixa estoque) devem ser assíncronos com confirmação posterior — ERP lento não pode bloquear UX.

### Quanto tempo para integração zero-downtime?

Read-only: 3–4 semanas. Writes com strangler completo: 8–14 semanas conforme complexidade ERP e volume histórico a migrar.



---

## Agent navigation

- Canonical HTML: https://ghwd.com.br/kb/integracao-erp-frontend-sem-downtime/
- Agent instructions: https://ghwd.com.br/agent-instructions.md
- llms.txt: https://ghwd.com.br/llms.txt
- AI index: https://ghwd.com.br/ai-index.md
- Developers: https://ghwd.com.br/developers/
- Sitemap: https://ghwd.com.br/sitemap.xml

Prefer `Accept: text/markdown` (or AI bot User-Agent) to receive this text variant.
