TaskFlow is a project management system inspired by Jira, built using a microservices architecture. It is designed for scalability and flexibility, leveraging the best technologies suited for each service's requirements.
| Service Name | HTTP Port | gRPC Port |
|---|---|---|
main-service |
localhost:8081 |
localhost:5001 |
notification-service |
localhost:8082 |
localhost:5002 |
chat-service |
none |
none |
metrics-service |
none |
none |
envoy |
localhost:9901 |
none |
kafka |
localhost:9092 |
none |
mysql |
localhost:3306 |
none |
mongodb |
localhost:27017 |
none |
kafka_ui |
localhost:8888 |
none |
cassandra |
localhost:9042 |
none |
redis |
localhost:6379 |
none |
- C#
- ASP.NET Core for
main-serviceresponsible for managing tasks, users, groups, projects and boards
- ASP.NET Core for
- Go
- Gin for
metrics-serviceto collect and expose metrics
- Gin for
- Node.js + TypeScript
- NestJS for
notification-serviceandchat-service
- NestJS for
- Apache Kafka – For asynchronous messaging between services
- gRPC – For high-performance synchronous communication
- Envoy – API Gateway for routing and managing microservices
- Docker – Containerized services
- Kubernetes (Optional) – Deployment orchestration
- MySQL/PostgreSQL/MongoDB/Cassandra – Database (depending on service needs)
- Redis – Caching layer
- Clean Architecture – For maintainable and testable codebase
Ensure you have the following installed:
- Docker
- Node.js (for Nest services, v22.x)
- Go (for Go services)
- Kafka (can be run via Docker)
- ASP.NET Core (for main service)
- Envoy (API Gateway)
Feel free to contribute and modify this template to suit your needs! 🚀