Distributed Chat App: Discord-like Prototype
This project is a prototype designed to provide instant messaging with high concurrency, scalability, and fault tolerance. This prototype uses Aerospike as its NoSQL database solution, demonstrating its capabilities in managing real-time data.
This prototype was developed as a Proof of Concept for comparing NoSQL technologies, highlighting the advantages of using Aerospike for high-throughput applications. The chat application features nclude user account management, channel creation, and message handling. If you want to know the results and the key takeaways more in depth, check this paper.
Key Features
- High Concurrency: Supports thousands of concurrent users without performance degradation.
- Scalability: The system can seamlessly scale with a growing user base.
- Fault Tolerance: Ensures continuous availability of the chat service through Aerospike’s features.
Architecture
The prototype adopts a distributed and scalable client-server architecture. Key components include:
- Frontend: Implemented using SvelteKit to provide a responsive user experience.
- Backend: Developed in Node.js to handle business logic, user authentication, and messaging functionality.
- Database: Aerospike serves as the underlying database, ensuring high throughput and low latency.
Repository
Want to know more? Click here.
Team
- Guilherme Almeida (Programmer)
- José Osório (Programmer)
- Nuno Pereira (Programmer)