Distributed Worker System for Scalable Job Execution
TaskForge is a distributed system in developement designed to schedule, distribute, and execute jobs across multiple worker nodes efficiently.
It leverages multiple technologies:
- Golang for backend scheduling and routing
- C++ for high-performance job execution
- JavaScript for frontend job submission
- Frontend submits a job
- Server schedules and queues the job
- Idle worker node receives the job
- Worker:
- Downloads required resources
- Executes
.jarfile - Uploads results to output endpoint
import fileImporter;
import fileWriter;
class main {
public static void main(int argc, string argv[]) {
float values[] = fileImporter.getValuesFromFile("input.txt");
int size = fileImporter.getNumberOfDataPoints("input.txt");
float sum = 0;
for(int i = 0; i < size; i++) {
sum += values[i];
}
fileWriter.writeValue("output.txt", sum / size);
}
}- Node registry (alive / dead tracking)
- Event-driven scheduler
- RSA-based authentication system
- Binary heap priority queue for jobs
- Sandboxed
.jarexecution - Distributed input/output via URLs
- Full frontend dashboard:
- Active jobs
- Queue state
- Job cancellation
git clone https://github.com/ljlericson/TaskForge/
cd TaskForgesh build-server.sh
./bin/TaskForge-Serversudo apt install openssl cmake python3
cd worker/vcpkg
sh bootstrap_vcpkg.sh
./vcpkg install
cd ../../
sh build-worker.sh
./bin/TaskForge-ClientThen for subsequent builds
sh build-worker.sh
./bin/TaskForge-Clientcd web
python3 -m http.server 8000Open in your browser:
http://localhost:8000/
sh test-server.sh- Secure sandbox execution
- Distributed file handling
- Horizontal scaling improvements
- UI/UX enhancements
- Job retry and fault tolerance
Contributions are welcome. Feel free to open issues or submit pull requests.
MIT License
