Understanding the architecture and system design of a real-time chat application Requirements and Goals of the System Functional requirements Conversation: The system should support one-on-one and group conversations between users. Acknowledgment: The system should support message delivery acknowledgment, such as sent, delivered, and read. Sharing: The system should support sharing of media files, such as images, videos, and audio.