# Loadbalancer coding exercise

To start, the candidate should
- clone this repo
- make a python virtualenv
- pip install the `requirements.txt`.

## Tasks

1. Implement the `health_check()` method -- Add logic to the health check routine to remove unhealthy backends from the list of `healthy_backends`.

2. Implement the `get_backend()` method -- Add logic to select a specific backend from the list of available `healthy_backends`.

3. Update the backends reload logic to fully pull a new copy from the endpoing every 60 secs.

## Bonus Points
- Weighted Round-Robin: Extend the algorithm from `2.` to support weighted round-robin distribution.
- Sticky Sessions: Implement sticky sessions where requests from the same client are always routed to the same backend server.
- Statistics and Monitoring: Implement basic logging and monitoring of request distribution and server health.