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
| Aspetto | WordPress legacy | Headless su Edge |
|---|---|---|
| Rendering | PHP + MySQL a ogni richiesta | HTML pre-renderizzato (SSG/ISR) in CDN |
| TTFB tipico | 1–2 s sotto carico campagna | < 50 ms dal nodo Edge più vicino |
| Picchi di traffico Ads | Saturazione PHP-FPM, errori 502/504 | Assorbiti dalla cache CDN |
| Invio form | Chiamata sincrona al CRM: se cade, il lead è perso | Outbox persistente + retry + Dead-Letter Queue |
| Integrità del lead | Nessuna firma, possibili duplicati | Firma HMAC SHA-256 + chiave di idempotenza |
| Superficie d'attacco | 24 plugin da aggiornare | Nessun runtime CMS esposto |
Percorso di un lead
Nessun lead perso, anche con il CRM offline.
1
Validazione
Email aziendale e Partita IVA con cifra di controllo.
2
Firma
HMAC SHA-256 via Web Crypto, chiave di idempotenza UUID.
3
Outbox
Salvataggio in IndexedDB, poi conferma immediata all'utente.
4
Consegna
Webhook CRM con retry: 2s × 2^n, max 30s, jitter.
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