> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/maxscale/maxscale-use-cases/readwrite-split-router-usage/understanding-maxscales-readwrite-split-router.md).

# Understanding MaxScale's Read/Write Split Router

MaxScale's [Read/Write Split Router (readwritesplit)](/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit.md) performs query-based load balancing. For each client connected to MaxScale, it opens up connections to multiple back-end database servers. When the client sends a write query to MaxScale, it routes the query to the connection opened with the primary server. When the client sends a read query to MaxScale, it routes the query to a connection opened with one of the replicas.

## What Does the Read/Write Split Router Support?

The [Read/Write Split Router (readwritesplit)](/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit.md) supports:

* [MariaDB replication](https://github.com/mariadb-corporation/mariadb-docs/tree/main/server/architecture/topologies/primary-replica/README.md) deployments.
* [Galera Cluster](https://github.com/mariadb-corporation/mariadb-docs/tree/main/server/architecture/topologies/galera-cluster/README.md) deployments.
* [Columnstore Object Storage](https://github.com/mariadb-corporation/mariadb-docs/tree/main/server/architecture/topologies/columnstore-object-storage/README.md) and [ColumnStore Shared Local Storage](https://github.com/mariadb-corporation/mariadb-docs/tree/main/server/architecture/topologies/columnstore-shared-local-storage/README.md) deployments.

## When to Use the Read/Write Split Router?

The [Read/Write Split Router (readwritesplit)](/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit.md) allows you to:

* Perform query-based load balancing.
* Route client connections to multiple servers simultaneously.
* Route write queries to primary and read queries to replicas.
* Automatically reconnect clients to the new primary after failover or switchover.
* Automatically replay transactions on the new primary after failover or switchover.
* Automatically retry failed queries.
* Enforce causal reads to avoid reading stale data caused by slave lag.

<sub>*This page is: Copyright © 2025 MariaDB. All rights reserved.*</sub>

{% @marketo/form formId="4316" %}
