# Functions

CheckHealth - Periodic check on nodes status.
GetUpstreamNode - Returns backend server using current algorithm.
Init - Initialise the LB algorithm.
InitIpHash - Initialise the LB algorithm for ip-hash selection.
InitLeastConnection - Initialise the LB algorithm for least-connection selection.
InitRandom - Initialise the LB algorithm for random selection.
InitRoundRobin - Initialise the LB algorithm for round robin selection.
NewIpHashBalancer - Creates a new instance.
NewLeastConnectionsBalancer - Creates a new instance.
NewRandomBalancer - Creates a new instance.
NewRoundRobinBalancer - Creates a new instance.

# Constants

TODO: make it customizable.
TODO: make it customizable.

# Variables

ErrNoAvailableItem no item is available.

# Structs

IpHashBalancer instance.
Item - Represents a load balanced node.
LeastConnectionsBalancer instance.
NodeBalancer - Core structure for a load balancer.
RandomBalancer instance.
RoundRobinBalancer instance.

# Interfaces

Balancer - Represents a Load Balancer interface.

# Type aliases

LoadBalancing - Contains the multiple instances for the active servers.