---
id: "maxscale"
type: "component"
kind: "database-proxy"
provider: "default"
category: "data"
docs: "https://mariadb.com/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit.md"
url: "https://localhost:3000/catalogue/components/maxscale"
---

# MariaDB MaxScale

Plugin-based database proxy for MariaDB and MySQL with read/write splitting and failover routing.

| | |
|---|---|
| Provider | [default](https://localhost:3000/catalogue?provider=default) |
| Kind | [Database proxy](https://localhost:3000/catalogue/kinds/database-proxy) |
| Category | Data |
| Official docs | [https://mariadb.com/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit.md](https://mariadb.com/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit.md) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `causalReads` | enum | `none`, `local`, `global`, `fast`, `universal` | no | "none" | inherited |
| `hedging` (advanced) | boolean | — | no | false | inherited |
| `loadShedding` (advanced) | boolean | — | no | false | inherited |
| `managed` | boolean | — | no | false | inherited |
| `maxSlaveConnections` | integer | — | no | 255 | inherited |
| `poolSharded` (advanced) | boolean | — | no | false | inherited |
| `pooling` | boolean | — | no | true | **false** |
| `requestCoalescing` (advanced) | boolean | — | no | false | inherited |
| `router` | enum | `readwritesplit`, `readconnroute`, `schemarouter`, `smartrouter`, `binlogrouter` | no | — | inherited |
| `routing` | enum | `none`, `shard-key`, `lookup` | no | "none" | **"none"** |
| `scatterGather` (advanced) | boolean | — | no | false | inherited |
| `transactionReplay` | boolean | — | no | false | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 13

- [Amazon RDS Proxy](https://localhost:3000/catalogue/components/rds-proxy.md) `rds-proxy` — aws
- [Cloudflare Hyperdrive](https://localhost:3000/catalogue/components/cloudflare-hyperdrive.md) `cloudflare-hyperdrive` — cloudflare
- [Generic database proxy](https://localhost:3000/catalogue/components/database-proxy.md) `database-proxy` — default
- [mongos](https://localhost:3000/catalogue/components/mongos.md) `mongos` — default
- [Odyssey](https://localhost:3000/catalogue/components/odyssey.md) `odyssey` — default
- [PgBouncer](https://localhost:3000/catalogue/components/pgbouncer.md) `pgbouncer` — default
- [PgCat](https://localhost:3000/catalogue/components/pgcat.md) `pgcat` — default
- [Pgpool-II](https://localhost:3000/catalogue/components/pgpool.md) `pgpool` — default
- [ProxySQL](https://localhost:3000/catalogue/components/proxysql.md) `proxysql` — default
- [Supavisor](https://localhost:3000/catalogue/components/supavisor.md) `supavisor` — default
- [Vitess](https://localhost:3000/catalogue/components/vitess.md) `vitess` — default
- [Cloud SQL Auth Proxy](https://localhost:3000/catalogue/components/google-cloud-sql-auth-proxy.md) `google-cloud-sql-auth-proxy` — gcp
- [IBM Data Virtualization](https://localhost:3000/catalogue/components/ibm-data-virtualization.md) `ibm-data-virtualization` — ibm

## Use it in a design

```yaml
nodes:
  - { id: "maxscale", component: "maxscale" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# MariaDB MaxScale: plugin-based database proxy for MariaDB and MySQL, one router per
# service. Service parameters: connection sharing is off (idle_session_pool_time -1s);
# readwritesplit defaults to slave_selection_criteria least_current_operations,
# causal_reads none, transaction_replay off, max_slave_connections 255.
schemaVersion: "1"
type: "component"
id: "maxscale"
kind: "database-proxy"
provider: "default"
docs: "https://mariadb.com/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit.md"
defaults:
  pooling: false
  routing: "none"
properties:
  router:
    type: "enum"
    values: ["readwritesplit", "readconnroute", "schemarouter", "smartrouter", "binlogrouter"]
  causalReads:
    type: "enum"
    values: ["none", "local", "global", "fast", "universal"]
    default: "none"
  transactionReplay:
    type: "boolean"
    default: false
  maxSlaveConnections:
    type: "integer"
    default: 255
```

Human page: https://localhost:3000/catalogue/components/maxscale
