Hi Ben,

please find my inline comments preceded by [ML].


Il 05/02/2026 16:35, Ben Schwartz ha scritto:


------------------------------------------------------------------------
*From:* Mario Loffredo <[email protected]>

> We opted for EoH to take advantage from being independent on TCP.


I don't understand.  Could you clarify?

[ML] EPP over TCP, i.e. RFC 5734, maps an EPP session to a TCP connection. Therefore, TCP connections should persist as logn as EPP sessions are alive. However, more importantly, when a TCP connection is lost, the related EPP session ends and no further EPP commands can be issued over that session. In L4 load balancing, TCP connections are kept alive by backend servers. When a backend server crashes or needs to be shut down for maintenance, all ongoing connections are dropped.

L7 load balancing is more suitable when maintaing user sessions is essential.

Furthemore, L4 load balancing is not always supported on cloud platforms or is complex to implement. Many RSPs that operate multiple domain name registries are planning to migrate their services to a cloud envionment, and EPP over HTTPS supported by a L7 load balancing would be the most suitable solution.



> We've explored every solution for managing HTTP sessions on a load-balancing architecture, from sticky sessions to outsourcing session management to a Redis cluster. The latter solution offers us maximum flexibility, scalability, and fault tolerance and implement load balancing very efficiently.


Thanks for sharing.  Are you relying on the "Cookie" request header to link HTTP requests with their EPP session?  (This seems to be the suggestion in draft-ietf-regext-epp-https-02.)


[ML] Yes, exactly. An EPP session is mapped to an HTTP session. Therefore, the EPP session is not tied to a physical connection, but to a logical one.

In particular, when the EPP session information is stored outside the pool of backend servers, an EPP command can be processed by any backend server, not necessarily by the one that initiated the HTTP session.

As a consequence, no EPP session is lost when a backend server goes down.



> My opinion is that WebSocket would not be the right solution, at least not as efficient as traditional HTTP connections, since WebSocket connections between client and server are stateful and long-lived via the load balancer.

Could you give us some sense of the typical session duration and number of commands per session?


[ML]  The duration of sessions various, where a best practice is for the client to maintain a pool of established stateful sessions that are kept alive in the background via the EPP Hello Command.  Some registrars will establish a session per command, but that introduces undue overhead (e.g., TLS handshake and authentication via the EPP Login Command) in supporting a large set to provisioning commands.  Some registries include connection policies for registrars (e.g., bandwidth limit, connection limit) to meet non-discriminatory access that encourages the registrars to maintain a pre-defined set of EPP connections to process provisioning requests from their website.


> In this scenario, sticky sessions would be the only option to implement load balancing for WebSocket, but based on our nearly twenty years of experience and also widely described in literature, this wouldn't balance the load efficiently and would require addressing some additional issues, such as maintaining connection limits, keeping the service up during maintenance operations, and handling a huge volume of requests.


It seems like maintaining session limits is required in either design, and the number of requests is the same either way. However, I appreciate that if each session is bound to a connection, then a session cannot easily outlive its server instance.  To determine whether this is acceptable, it would help to understand how long sessions normally last, and how much of a problem it is when a session is closed by the server.


[ML] Aside from the benefits of deploying an L7 load balancer on a cloud environment which is one of the reason supporting the implementation of EoH, EPP was designed to be stateful, so any solution that enforces session stability is required.


Best,

Mario



--Ben


_______________________________________________
regext mailing list [email protected]
To unsubscribe send an email [email protected]
_______________________________________________
regext mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to