I rate limit della WhatsApp Business API
Il rate limit di default e di 80 messaggi al secondo per numero di telefono. Per account con storico di alta qualita e volumi comprovati, Meta puo approvare rate limit superiori: 250, 1.000, o 3.000 messaggi al secondo. La richiesta di aumento va presentata tramite il Meta Business Manager.
Il rate limit si applica per numero di telefono, non per account WABA. Se hai bisogno di inviare 200 messaggi al secondo, puoi distribuire il carico su tre numeri da 80 msg/s ciascuno. Chat API gestisce questa distribuzione automaticamente quando configurata.
Superare il rate limit genera errori 429 (Too Many Requests) che devono essere gestiti con backoff esponenziale e coda di retry. Senza questa gestione, i messaggi in eccesso vengono persi.
Architettura con code per volumi alti
Per volumi elevati, l'architettura ottimale usa una coda di messaggi come buffer: il tuo sistema produce messaggi alla massima velocita possibile, la coda li accumula, e il consumer li invia rispettando il rate limit. Redis Queue, RabbitMQ, AWS SQS e Apache Kafka sono le scelte piu comuni.
Il consumer della coda deve implementare un token bucket o un leaky bucket algorithm per rispettare il rate limit. Con un rate limit di 80 msg/s, il consumer processa un messaggio ogni 12.5ms. Se il rate limit viene aumentato, aggiorni solo la configurazione del consumer senza modificare il codice del producer.
Monitora la profondita della coda: se cresce costantemente, significa che la velocita di produzione supera quella di consumo. Aggiungi numeri WhatsApp, aumenta il rate limit, o riduci la velocita di produzione.
Distribuzione su numeri multipli
Con piu numeri WhatsApp nel tuo WABA, puoi distribuire il carico tramite un round-robin o un sistema di load balancing. Chat API supporta la gestione di piu numeri nello stesso account, con metriche separate per numero per il monitoring della qualita.
Monitoring e alerting per sistemi ad alto volume
Per sistemi di produzione ad alto volume, monitora in tempo reale: messaggi in coda, tasso di consumo, errori 429 per minuto, latenza media dall'invio al delivered webhook, e quality score per ogni numero.
Configura alert automatici: profondita coda > 10.000 messaggi, errori 429 > 50 per minuto, quality score downgrade. Questi alert permettono intervento proattivo prima che i problemi diventino visibili ai clienti.