Load Balancer
  • 27 Jul 2022
  • 1 Minute to read
  • Contributors
  • Dark
    Light
  • PDF

Load Balancer

  • Dark
    Light
  • PDF

Article summary

Load Balancer Nodes are Nodes that balance incoming messages across their sending edges. This implies several things:

  • Inclusion of a Load Balancer Node in your Tenant's processing network inherently removes the guaranteed ordering of any Messages sent to that Load Balancer Node.
  • All Nodes that receive Messages from a Load Balancer Node should perform the exact same processing of those Messages. Failure to do this will result in random different processing of Messages!

There are many use cases for Load Balancer Nodes; all of them indicate that you no longer require ordered delivery of the messages. For example, if one of the processing paths through your Tenant's network is to place Messages into a Data Lake/Data Warehouse for later processing, then ordering is proabaly no longer important. However, this path also augments those Messages with information gained by calling one or more external services to get additional data (e.g. - a web API, an external database), and the external service is relatively slow. To speed up the augmentation and injection of the data into your Data Lake/Data Warehouse, you could add a Load Balancer Node that balances to a number of Processor Nodes that augment the Message, thereby gaining concurrency in augmentation equal to the number of Processor Nodes that you have added.

Configuration

There is no configuration for Load Balancer Nodes.

Algorithm

Load Balancer Nodes follow this algorithm to balance the received Messages across their sending Edges:

  1. If the number of sending Edges is 1, then all Messages are sent along that Edge.
  2. If the number of sending Edges is less than the number of Messages received, then each Edge will receive the smae number of messages, calculated by the number of Messages / number of Edges, rounded down. If there are any Messages remaining, they will be randomly distributed across the Edges.
  3. If the number of sending Edges is greater than the number of Messages, all Messages will be randomly distributed across the sending Edges.

What's Next