Details:
Peku is a highly scalable Chatapp built using Angular, Spring-boot, MongoDb, and Apache Kafka.
Higher Level Design:
- Responsive Angular Front-End application used for Logging-In, Registering, Searching, and messaging other member on the platform.
- Authentication Server powered by Spring-Boot RESTful Services is used for Authentication and session management (via producing JWT token) with the help of a MongoDB database used to store persisent data.
- NGINX acts as the Reverse Proxy Loadbalancer used to authenticate (JWT validation) and distribute traffic evenly through the microservices of the system.
- Chatapp Servers powered by Spring-Boot is used to manage the apps chat services using WebSockets as the API protocol for real-time messaging with the Front-End (note: max 100 concurrent connections per server).
- Apache Kafka is the service used to store all the clients chat logs to provide a very fast, fault tolerant, and highly scalable real-time messaging system