Details:



Peku is a highly scalable Chatapp built using Angular, Spring-boot, MongoDb, and Apache Kafka.




Higher Level Design:





  1. Responsive Angular Front-End application used for Logging-In, Registering, Searching, and messaging other member on the platform.
  2. 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.
  3. NGINX acts as the Reverse Proxy Loadbalancer used to authenticate (JWT validation) and distribute traffic evenly through the microservices of the system.
  4. 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).
  5. 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