https://github.com/genvekt/cli-chat
π¬ πββοΈChat based on Golang microservices with gRPC connections
https://github.com/genvekt/cli-chat
clean-architecture golang grafana grpc jaeger kafka postgresql prometheus
Last synced: 10 months ago
JSON representation
π¬ πββοΈChat based on Golang microservices with gRPC connections
- Host: GitHub
- URL: https://github.com/genvekt/cli-chat
- Owner: Genvekt
- Created: 2024-07-11T07:10:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-27T14:53:38.000Z (over 1 year ago)
- Last Synced: 2025-05-30T12:37:43.313Z (10 months ago)
- Topics: clean-architecture, golang, grafana, grpc, jaeger, kafka, postgresql, prometheus
- Language: Go
- Homepage:
- Size: 3.9 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# cli-chat  [](https://goreportcard.com/report/github.com/Genvekt/cli-chat/services/auth)
---
Chat application based on Golang microservices. Project combines various modern technologies, applying clean architecture principles.
### Technologies
---
- Language: Golang 1.22
- Protocols: gRPC with TLS, gRPC gateways, HTTP
- Database: PostgreSQL
- Event Bus: Kafka
- Metrics: Prometheus, Grafana, Jaeger
- Authentication: JWT
### System diagram
---

### Project structure
---
Project structured as monorepository of services, that share common libraries
```
βββ libraries # common libraries chared by services
β β
β βββ api # gRPC contracts specification with protocol buffers
β βββ cache_client # wrapper for redis client
β βββ closer # applicalion gracefull shutdown utility
β βββ db_client # wrapper for postgres client
β βββ kafka # wrappers for kafka consumer and producer
β βββ logger # common logger (zap)
β
βββ services
β
βββ auth # Service that manages users, authenctication and authorisation
βββ auth_postgres # DB for auth service
βββ auth_producer # Service with kafka producer to create random users
β
βββ chat_server # Service that manages chats and messages
βββ chat_sercer_postgres # DB for chat_server service
β
βββ kafka # Kafka deployment files
βββ metrics # Prometheus and Grafana deployment files
βββ tracing # Jaeger deployment files