Task_Flow is a distributed task scheduling system built with Go, designed to manage and execute tasks across a cluster of nodes efficiently. This project serves as a hands-on exploration of Go's concurrency model and networking capabilities while creating a scalable, real-world application.
- Task Scheduling: Prioritize and queue tasks for execution.
- Worker Nodes: Distribute tasks across multiple worker nodes.
- Cluster Management: Dynamic addition and removal of nodes with failover handling.
- APIs: RESTful APIs for interacting with the scheduler and workers.
- Logging: Centralized logging for easy debugging and monitoring.
- Extensibility: Modular design for adding features like custom task types or alternative storage backends.
- Go Concurrency: Understand and leverage goroutines, channels, and the sync package.
- Networking: Implement inter-node communication using HTTP and REST APIs.
- Scalable Design: Explore modular architecture and cluster management.
- Database Integration: Learn to use databases like PostgreSQL or Redis for task metadata.
- Programming Language: Go
- Concurrency: Goroutines, Channels
- Networking: HTTP APIs
- Database: PostgreSQL/Redis (planned for persistence)
- Version Control: Git