Chat engine designed for millions of users
- Messaging in real-time
- Send and receive messages
- Send files - images, text, PDF
- React/unreact with emojis
- Multiple clients for the same user
- Chats
- Notifications when a message has been processed
- Indication for new messages
- Review history at a random point in time
- User
- Register, authenticate
- Change password, edit trivial profile data
- Store small user files - images, text, PDF
- Other users
- Search other users by name
- Connect with other users - invite/accept/cancel/remove
- Profiles with static full/public-only data
Check out what next needs to be implemented. I appreciate all comments so feel free to use the Discussions
tab.
- System design based on microservice architecture
- Implementation based on cloud-agnostic technologies
- Configurable, observable, containerized and runnable, deployable local environment
- Main technologies
- Integration - Kafka, gRPC, WebSocket, HTTP
- Data storage - Yugabyte, Cassandra, MinIO, Redis
- Operations - OpenTelemetry, Docker, Kubernetes
- Services - .NET, ASP.NET, SignalR, EF Core
- Libraries - Autofac, Serilog, FluentValidation, AutoMapper, Polly, IdGen
- Automated testing - NUnit, Testcontainers, FluentAssertions, Coverlet
- Intro
- Research
- Design
- Development
- Load test using 2 machines
- What next
Any use of the project for training large language models, generative AI, or any other similar tools in the past/present/future is done without our permission.