Project developed as part of the Industrial Communication Protocols in Power Systems course at FTN Novi Sad.
A service that stores data received from clients using a Load Balancer (LB) and Worker (WR) architecture. The LB listens on port 5059 and forwards each request to the Worker with the least stored data. Workers register/deregister with the LB on startup and shutdown. When a new Worker joins, data is redistributed evenly across all Workers.
- Load Balancer – Worker architecture (1 LB, 1–10 WRs)
- Request routing to least-loaded Worker
- Dynamic Worker registration and deregistration
- Data redistribution on new Worker arrival
- Throughput measurement with 1–10 Workers
- Manual data structures (no STL containers)
- Multithreading with threads, semaphores, and critical sections
- C++ / C
- POSIX Threads
- Semaphores, Critical Sections
- Socket programming (port 5059)