This document explains the networking architecture for LivePerson Functions V2, including how functions communicate with external services and the limits that apply.

Simplified Network Architecture

In contrast to the previous version of the platform, FaaS V2 introduces a more direct and simplified networking model.

  • No Proxy: The intermediary proxy server has been removed. Functions now establish connections directly with external endpoints.
  • No Allowlist: The requirement to maintain a domain allowlist has been eliminated. You can connect to any public endpoint without prior configuration on the platform.

This direct communication model reduces complexity and potential points of failure. Functions can only use HTTP or HTTPS to connect to external services. For example, sending emails from a function would be solely possible if you leverage a web-based service.

When using a TLS-encrypted endpoint via HTTPS (highly recommended), LivePerson is unable to provide you with any information of the communication apart from the reachability of your service (if a TCP connection has been established or not). LivePerson cannot monitor status codes or payloads of these connections.

IP Range for Outgoing Traffic

All outgoing traffic from FaaS V2 functions originates from a predefined set of IP addresses. This allows you to configure your firewalls to accept connections from our platform. The IP ranges for FaaS V2 are the same as the published IP ranges for LivePerson.

Networking Limits

The underlying infrastructure for FaaS V2 is based on Google Cloud, which imposes certain networking limits per function instance.

Outgoing Connections

The number of simultaneous outgoing connections is significantly higher than in the previous platform version.

  • Connections per second: 700
  • Connections per minute: 5000

These limits apply per running instance of your function.

DNS Resolutions

There is also a limit on the number of DNS lookups a function can perform.

  • DNS resolutions per second: 1000

This should be sufficient for most use cases, but it's a factor to consider for functions that communicate with a large number of different domains.