Ejabberd Scaling

How can I build a chat service that needed to handle 20K concurrent users, 100K daily active users and 1000 messages per second?
We also need to launch the following services:
1. Chat 1to1 or group chat
2. Stream management
3. MAM
4. Ping (c2s and s2c) per minute
5. TLS
6. REST APIs provide some services such as administration, etc.
7. Monitoring (Zabbix)

Syndicate content