{"repo":"ramank775/chat-server","free":true,"listed":false,"github":"https://github.com/ramank775/chat-server","clone":"git clone https://github.com/ramank775/chat-server.git","description":"A chat server based on the microservice architecture to ensure high availability, high throughput, horizontal scalability","language":"JavaScript","stars":43,"topics":["microservices-architecture","kafka","chat","chatserver","nats","nats-jetstream"],"license":"MIT","category":"chat-messaging","readme_excerpt":"Chat Server A chat server based on the microservice architecture to ensure high availability, high throughput, horizontal scalability. Architecture Components - Nginx: Nginx act as API gateway as well as load balancer. - Responsibility - API Gateway - Authentication - Load Balancing - Web Socket Gateway: It's handling client websocket connection and sending message to message broker - Responsibility - Maintaining Web Socket Connection - Forwarding event like onConnect , onDisconnect , new-message to message broker - Sending message back to client - Rest Http Gateway: It handle rest call to send messages. - Responsibility - Send Message to message broker. - Profile MS: Rest Api Service provides functionality like login , auth , contact-sync - Responsibility - Login, Auth - Contact Sync - Group MS: Rest Api Service provides functionality to create , update - Responsibility - Create Group - Add, Remove Members - Fetch groups - Message Delivery MS: Message delivery in real time when the user is connected, syncing messages when user is offline - Responsibility - Maintaining User connection state. - Message push in real time when a user in connected. - Store message when the user is disconnected. - Guaranteed message delivery to the receiver. - Ability to sync message in background. - Message Router: Route the incoming new message to respective destination - Responsibility - Parse message. - Redirect message to respective destination for e.g. - Route group message to Group Message ","default_branch":null,"files":null,"tree":[],"storefront":"/r/ramank775","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ramank775/chat-server/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}