On naming and how to configure the feature: What the option does It only matters when target_session_attrs is set. On a target_session_attrs mismatch (e.g. we wanted primary but got standby), it controls: 0 (default): treat this host as failed and move to the next host. 1: stay on this host and try the next address for the same hostname. So the name is really answering: on session-attrs mismatch, try next address vs next host? Is "check_all_addrs" good? Pros: Short, easy to type, and the env var PGCHECKALLADDRS is clear. Cons: It doesn't mention target_session_attrs, so the link to that feature isn't obvious. "Check" is vague (check for what?). The important part is "try all addresses (for this host) on mismatch." With only check_all_addrs=1 in the conninfo, someone might not guess it's about session attrs. So it's usable but not ideal. Naming alternatives try_all_addrs Shorter; "try" is more accurate than "check". Still doesn't tie to target_session_attrs. try_next_addr_on_mismatch Very clear. Long; "mismatch" is a bit generic. target_session_attrs_try_all_addrs Explicitly tied to the feature. Too long for conninfo. session_attrs_try_all_addrs Shorter, still linked to session attrs. Slightly ambiguous ("try all" what?). try_all_host_addrs Makes "addresses of current host" clear. Doesn't mention session attrs. A reasonable compromise is try_all_addrs: same length as now, clearer verb, and the docs can state it applies when target_session_attrs is used. If you want the link to session attrs in the name, session_attrs_try_all_addrs is the next best, at the cost of length. Other ways to configure it 1) No new option (behavioral change only) Evgeny's approach: always try next address on session-attrs mismatch. No naming issue, but it changes default behavior and was argued against for backward compatibility. 2) Fold into target_session_attrs E.g. target_session_attrs=read-write,try_all_addrs or read-write+try_all. Pro: option is clearly scoped to that feature. Con: one parameter does two things (desired role + connection strategy); parsing and docs get more complex. 3) Keep a separate option (current design) A dedicated connection parameter that only has effect when target_session_attrs is set. Pro: simple parsing, clear in conninfo, easy to document. Con: the name should make the "only with target_session_attrs" contract obvious (in name or docs). 4) Tie to load_balance_hosts E.g. when load_balance_hosts=random (or disable) and target_session_attrs is set, add a third mode like try_all_addrs. Con: mixes two concepts (load balancing vs which address to try next on mismatch); semantics get confusing. Recommendation Naming: Prefer try_all_addrs over check_all_addrs (clearer, same length). If you want the link to session attrs in the name, use session_attrs_try_all_addrs and accept the length. Configuration: Keeping a separate connection parameter is the right design; the main improvement is the name and a one-line note in the docs that it only has effect when target_session_attrs is set. I wouldn't fold it into target_session_attrs or into load_balance_hosts. Made with Cursor.