Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/numq/dddating-backend
A dating backend written in Rust and based on the gRPC microservices ecosystem and Clean Architecture principles
https://github.com/numq/dddating-backend
amqp backend clean-architecture dating grpc jwt lapin microservices mongodb protobuf redis rust tokio tonic
Last synced: about 3 hours ago
JSON representation
A dating backend written in Rust and based on the gRPC microservices ecosystem and Clean Architecture principles
- Host: GitHub
- URL: https://github.com/numq/dddating-backend
- Owner: numq
- License: mit
- Created: 2023-05-17T12:29:10.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-20T21:53:42.000Z (7 months ago)
- Last Synced: 2024-04-20T23:02:55.193Z (7 months ago)
- Topics: amqp, backend, clean-architecture, dating, grpc, jwt, lapin, microservices, mongodb, protobuf, redis, rust, tokio, tonic
- Language: Rust
- Homepage:
- Size: 671 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DDDating backend
> This is an overview of the project. Go to the submodule to see the implementation details of a specific service.
Dating application backend based on the gRPC microservices ecosystem and Clean Architecture principles
____
[Try plugin for IntelliJ, make it easy to generate Protobuf code](https://plugins.jetbrains.com/plugin/21792-protobuf-blueprint)
[![Protobuf Blueprint](https://github.com/numq/protobuf-blueprint-plugin/blob/master/media/logo.png)](https://plugins.jetbrains.com/plugin/21792-protobuf-blueprint)
![Overview](./media/dddating-backend-overview.png)
## Installation
> docker-compose up -d
## Services:
> Details about the API methods are available in the README of each service
- [Gateway](./service/gateway) - Entrypoint via microservices aggregation
- [Authentication](./service/authentication) - Password based authentication functionality
- [Account](./service/account) - User account management
- [Token](./service/token) - User authentication session handling
- [Conversation](./service/conversation) - Chat between matches
- [Matchmaking](./service/matchmaking) - Likes, dislikes with expiration and backtrack
- [Profile](./service/profile) - User profile management
- [Recommendation](./service/recommendation) - Match candidates by filters
- [Safety](./service/safety) - Profile report system
- [Support](./service/support) - Ticket based report functionality## Architecture:
- *Clean Architecture*
- *Domain-driven design (DDD)*
- *Reactive programming*
- *Rust* workspace
- *gRPC* based microservices
- *gRPC* based gateway## Technologies:
- **Rust** language
- **tokio** async runtime
- **tonic** gRPC implementation
- **prost** Protocol Buffers implementation
- **RabbitMQ (lapin)** message brocker
- **MongoDB** NoSQL database
- **Redis** in-memory cache
- **JWT** based authentication