Backend Overview
- Reflection - Project challenges, learnings, and improvements
Architecture
The backend consists of 5 microservices communicating through REST APIs and Kafka events:
- Auth Service - User authentication and JWT management
- Task Service - Task CRUD operations and event publishing
- Team Service - Team management and member permissions
- Realtime Service - WebSocket connections and event broadcasting
- Notification Service - Email notifications via Kafka events
Infrastructure Components
- Kafka - Message broker and event streaming platform
- Nginx Gateway - API gateway, load balancer, and WebSocket proxy
- MySQL Databases - One database per service for data isolation
Communication Patterns
- Synchronous: REST APIs for request-response operations
- Asynchronous: Kafka events for real-time updates and notifications
- Real-time: WebSocket connections for live collaboration
Key Technologies
- Language: Go 1.21+ with Gin framework
- Database: MySQL (one per service)
- Message Broker: Apache Kafka
- Authentication: JWT tokens
- Containerization: Docker
Documentation
Key Features
- Event-Driven Architecture: Realtime and Notification communicate with other services via Kafka events
- Real-time Collaboration: WebSocket-based live updates
- Team-based Partitioning: Kafka events partitioned by team ID for ordering
- JWT Authentication: Stateless authentication across services
\newpage