I am trying to send a WhatsApp broadcast using Meta's WhatsApp API, but I am not able to fully utilize the 1K messages per second throughput limit. Current Architecture: I process phone numbers and divide them into chunks of 1,000. These chunks are sent asynchronously to the WhatsApp API via Celery workers. Each worker picks a chunk and sends messages using the Meta API. After sending, the worker waits 5 seconds to receive a response containing the conversation_id, which is then stored in the database. Problem: If I increase the number of workers, I risk exceeding the 1K/sec limit since multiple workers will send messages simultaneously. If I keep fewer workers, the system doesn’t achieve the 1K/sec limit efficiently. The delay caused by waiting for the conversation_id affects overall throughput. Questions: Is my approach wrong, or is there a better way to structure this system to maximize throughput? How can I ensure that I send messages efficiently while staying within the 1K/sec limit? Would another language (e.g., Node.js, Golang) be more effective for handling high-throughput WhatsApp API requests? How should I manage the response handling (conversation_id update) without slowing down message delivery? Any advice or best practices would be greatly appreciated! Continue reading...