Generally, chat systems consists of three main components: 1. Server class, where messages are sent between client and server 2. Communication class, that is responsible for maintaining database 3. Client application, that connects to the chat server