Your question is Architecture for a Big Chat Service. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Describe what database and backend services you would use to support a big chat service.
Explain your choices for message storage, user and conversation data, APIs, real-time delivery, caching, search, media, notifications, scaling, reliability, and security. Include rough capacity estimates, consistency decisions, failure handling, and how you would monitor the system. Discuss which operations should be synchronous versus asynchronous and how the design would evolve as traffic grows.