Build a Load balancer for at most 10 unique services. You will be asked to use Random algorithm to fetch the service and then use RoundRobin. Concurrency is the last task,
Sigiloso
Don't over engineer the code, Keep it simple. For multiple service fetching, use Strategy Pattern (Code to an interface all the time) and build generic LoadBalanceStrategy interface with get method and create subclasses for RandomLoadBalancerStrategy and RoundRobinBalancerStrategy, This the best way to do it and easy to test. For concurrency task, you just need to introduce a lock, it's known for heavy read and light write to use Read-Write lock which is the exact case here.