{"id":19297393,"url":"https://github.com/quentin-piot/messaging-microservices-grpc-ddd","last_synced_at":"2026-01-27T20:32:07.952Z","repository":{"id":260468383,"uuid":"881232040","full_name":"Quentin-Piot/messaging-microservices-grpc-ddd","owner":"Quentin-Piot","description":"Whatsapp clone using microservices, DDD, CQRS, GRPC, etc.","archived":false,"fork":false,"pushed_at":"2024-11-28T15:07:23.000Z","size":1877,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T10:34:34.331Z","etag":null,"topics":["cqrs","ddd","grpc","nestjs"],"latest_commit_sha":null,"homepage":"https://messaging.quentinpiot.com","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Quentin-Piot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-31T06:45:39.000Z","updated_at":"2024-12-03T19:52:58.000Z","dependencies_parsed_at":"2024-10-31T14:26:40.595Z","dependency_job_id":"0906b516-e056-4423-8118-c376ae3d4dad","html_url":"https://github.com/Quentin-Piot/messaging-microservices-grpc-ddd","commit_stats":null,"previous_names":["quentin-piot/messaging-microservices-grpc-ddd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fmessaging-microservices-grpc-ddd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fmessaging-microservices-grpc-ddd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fmessaging-microservices-grpc-ddd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quentin-Piot%2Fmessaging-microservices-grpc-ddd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Quentin-Piot","download_url":"https://codeload.github.com/Quentin-Piot/messaging-microservices-grpc-ddd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249743318,"owners_count":21319094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cqrs","ddd","grpc","nestjs"],"created_at":"2024-11-09T23:04:35.881Z","updated_at":"2026-01-27T20:32:07.909Z","avatar_url":"https://github.com/Quentin-Piot.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Messaging App - Architecture and Microservices Training\n\n### Project Overview\n\nThe goal is to develop a messaging application to explore and deepen knowledge in service-oriented architecture,\nasynchronous communication, and modern backend and DevOps practices. This project uses microservices to create a modular\nand scalable application where each service operates independently and communicates via gRPC and RabbitMQ.\nInfrastructure management is handled with Kubernetes for container orchestration and Terraform for cloud infrastructure\nprovisioning and management.\n\n### Main Features\n\n* User Authentication: Basic login and authentication service for users.\n* Messaging Service: A microservice dedicated to sending, receiving, and storing messages.\n* Chat Service: A microservice to handle group and chat between users.\n* Notification Service: Manages notifications for received messages and user activity.\n* API Gateway: A single entry point for all client requests, redirecting them to the correct microservice.\n* gRPC Communication: Inter-service communication for faster and more efficient interactions.\n* RabbitMQ for Messaging: Event-driven architecture using RabbitMQ as a message broker to handle asynchronous tasks.\n* Infrastructure Management: Use of Kubernetes for container orchestration and Terraform for infrastructure\n  provisioning.\n\n### Technical Stack\n\n| Tool           | Usage                                                 |\n|----------------|-------------------------------------------------------|\n| **Node.js**    | Backend server for each microservice                  |\n| **Express**    | Framework to build REST APIs                          |\n| **gRPC**       | Communication between services                        |\n| **RabbitMQ**   | Message broker for asynchronous tasks                 |\n| **Docker**     | Containerization of services                          |\n| **Kubernetes** | Container orchestration for deployment and management |\n| **Terraform**  | Cloud infrastructure provisioning                     |\n| **PostgreSQL** | Database for user data                                |\n\n### Simplified Diagram\n\n![Simplified architecture](diagrams/diagram.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquentin-piot%2Fmessaging-microservices-grpc-ddd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquentin-piot%2Fmessaging-microservices-grpc-ddd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquentin-piot%2Fmessaging-microservices-grpc-ddd/lists"}