content/operate/rs/databases/active-active/disaster-recovery/proxy-based.md
If you add a lightweight proxy software component between the clients and the Active-Active database, applications can dynamically route requests to the optimal endpoint.
Advantages:
Proxies provide proactive and reactive health check methods, such as polling target health periodically using either a TCP connection or an HTTP request, or monitoring live operations for errors.
Proxies can be configured to run Active-Active health checks, such as the lag-aware database availability requests.
If an Active-Active database member fails, a proxy can automatically detect the issue and redirect traffic to a healthy Active-Active database member without requiring DNS propagation delays or client disconnections. This enables fast, controlled failover and minimizes downtime.
Considerations:
If you do not use DNS to resolve the Active-Active database members' FQDNs:
The proxies must have static IPs.
If you add a new node to the cluster, you must configure the proxy with the new endpoint.
A configuration syncer component is required to discover topology changes and reconfigure the proxy.
Proxies introduce latency.
Proxy failures can disconnect clients and cause disruptions.
If concurrent access across replicas must be avoided in every scenario, you can use a centralized proxy with a standby proxy instance for high availability.
Advantages:
Prevents concurrent access across replicas.
Failover and failback are simultaneous regardless of the Active-Active health check policy.
Considerations:
Although the proxy can be monitored with a watchdog and restarted in case of failure, this setup does not grant high availability for the proxy.
Limited scalability.
The following diagram shows a centralized proxy architecture with a standby proxy instance:
<div class="flex justify-center"> </div>To reduce latency and improve scalability, you can use a proxy co-located in the application server.
Advantages:
Reduced latency.
Better scalability.
Considerations:
The following diagram shows a co-located proxy architecture where each application server has its own proxy:
<div class="flex justify-center"> </div>You can use a pool of active proxies to scale the routing layer. Application servers can balance new connections to the pool of proxies using a round-robin distribution algorithm, such as DNS-based round robin.
Advantages:
High availability without complex monitoring and failover solutions.
Flexible scalability of the routing layer.
Considerations:
The following diagram shows a pool of proxies:
<div class="flex justify-center"> </div>