Snaplogic Triggered Task using an OnPremises URL through Load Balanced Groundplex Nodes

This article describes how a triggered task is invoked in the SnapLogic Elastic Integration
Platform using an OnPremise URL through load balanced Groundplex nodes.

Assume that your organization has a SnapLogic Groundplex provisioned with 3 nodes. When an OnPremise URL is exposed for a triggered task, it will automatically suggest the hostname of one of the nodes that belongs to the Groundplex.

e.g., https://GP-Node1:<port>/api/1/rest/feed/<RELATIVE_PATH_TO_TASK>/

To provide redundancy across all nodes in the Groundplex when a triggered task is invoked, a load balancer can be placed in front of the Groundplex nodes. When a load balancer is setup and configured, Snaplogic will use the load balancer in the auto-generated OnPremise URL.

e.g., https://GP-LB:<PORT>/api/1/rest/feed/<RELATIVE_PATH_TO_TASK>/

The following diagram describes the flow of network requests made when remotely executing a triggered task using a load balancer OnPremise URL.

  1. A remote client invokes the triggered task using the OnPremise URL that points to the load balancer (e.g., GP-LB).
  2. The load balancer forwards the request to an active groundplex node. GP-Node1 is selected for the purpose of this example.
  3. The groundplex node that receives the triggered task request asks the Control Plane on which node the task should be executed.
  4. The Control Plane forwards the request to an active groundplex node. GP-Node2 is selected for the purpose of this example.
  5. The triggered task now prepares to be executed on GP-Node2. An HTTPS connection is created between GPNode-1 and GP-Node2 to enable data to be streamed between the nodes.
  6. The data is read/write from/to the end points.
  7. The response message is sent though GP-Node1 then GP-LB (load balancer) back to the caller.

Thank you for the post. This is exactly what is been done in our environment.

Please elaborate more on point # 3 as to how the groundplex node communicates to control plane to decide the node on which the task should be executed.

Also as per point # 4, even though the control plane selects Node2 for execution, but the dashboard shows it as Node1. Am I correct with this statement? Please correct me if I’m wrong.

Many thanks!!!

In point #3, GP-Node1 uses its established connection to the control plane (the websockets over SSL connection) to notify the control plane of the request.
In point #4, the execution will show as GP-Node2, not GP-Node1, GP-Node1 is only acting as the pass-through.

Sorry if it is a dumb question, but is the Load balancer really useful here if control plane decides where it has to get executed? What purpose does the Load balancer server more than acting as a proxy may be?

1 Like

The load balancer would be to select which groundplex node to submit the initial request to. You don’t want to always point to some specific node, as it may be down at any given point for maintenance, etc. The load balancer would send to one of the groundplex nodes that are actually up and accepting requests.

To provide redundancy across all nodes in the Groundplex when a triggered task is invoked, a load balancer can be placed in front of the Groundplex nodes