tP

Edge → CRM: CRM online

coda 0

Kinetix

Architettura

Il vecchio sito Kinetix era un WordPress con 24 plugin e form sincrono verso il CRM. Qui lo sostituiamo con HTML pre-renderizzato in CDN e una coda dei lead che non dipende dal CRM.

Prima e dopo

  • Rendering

    Legacy
    PHP + MySQL a ogni richiesta
    Edge
    HTML pre-renderizzato (SSG/ISR) in CDN
  • TTFB tipico

    Legacy
    1–2 s sotto carico campagna
    Edge
    < 50 ms dal nodo Edge più vicino
  • Picchi di traffico Ads

    Legacy
    Saturazione PHP-FPM, errori 502/504
    Edge
    Assorbiti dalla cache CDN
  • Invio form

    Legacy
    Chiamata sincrona al CRM: se cade, il lead è perso
    Edge
    Outbox persistente + retry + Dead-Letter Queue
  • Integrità del lead

    Legacy
    Nessuna firma, possibili duplicati
    Edge
    Firma HMAC SHA-256 + chiave di idempotenza
  • Superficie d'attacco

    Legacy
    24 plugin da aggiornare
    Edge
    Nessun runtime CMS esposto

Percorso di un lead

Nessun lead perso, anche con il CRM offline.

  1. 1

    Validazione

    Email aziendale e Partita IVA con cifra di controllo.

  2. 2

    Firma

    HMAC SHA-256 via Web Crypto, chiave di idempotenza UUID.

  3. 3

    Outbox

    Salvataggio in IndexedDB, poi conferma immediata all'utente.

  4. 4

    Consegna

    Webhook CRM con retry: 2s × 2^n, max 30s, jitter.

  5. 5

    Dead-Letter Queue

    Dopo 5 tentativi; re-drive manuale dalla console.

PENDING → IN_FLIGHT → QUEUED_FOR_RETRY → DELIVERED (HTTP 200 OK) / DEAD_LETTER

Stack

  • Next.js App Router
  • React Server Components
  • Prerendering statico
  • Route Handler /api/crm/webhook
  • IndexedDB Outbox
  • Web Crypto HMAC SHA-256
Codice sorgente su GitHub