Skip to content

docs: add documentation around plugins, endpoint and database type compatibility - #1267

Open
karenc-bq wants to merge 1 commit into
mainfrom
docs/compatibility-docs
Open

docs: add documentation around plugins, endpoint and database type compatibility#1267
karenc-bq wants to merge 1 commit into
mainfrom
docs/compatibility-docs

Conversation

@karenc-bq

Copy link
Copy Markdown
Contributor

Summary

  • Add a structured Compatibility documentation guide for the Python wrapper covering plugin-vs-plugin, database-type, and endpoint-type compatibility
  • Consolidate the existing PluginChainCompatibility.md into the guide as the cross-plugin reference
  • Wire the new docs into docs/README.md's table of contents

Description

The Python wrapper previously had only a single PluginChainCompatibility.md "gotchas" page. This PR adds structured compatibility matrices under a new docs/using-the-python-wrapper/compatibility/ folder:

  • Compatibility.md — overview + universally-compatible plugins (dev, connect_time, execute_time), linking the three matrices.
  • CompatibilityDatabaseTypes.md — plugin × deployment-type matrix (Aurora Global DB, Aurora Cluster, RDS Multi-AZ Cluster/Instance, Single-AZ, Community).
  • CompatibilityEndpoints.md — plugin × endpoint-type matrix (Aurora cluster/reader/custom/instance, RDS Multi-AZ, Proxy, Limitless shard group, IP, CNAME), including the role-verification footnote for custom/instance endpoints.
  • PluginChainCompatibility.md (moved into the folder and expanded) — the cross-plugin matrix, mutually-incompatible groups, plugin ordering + weights, required pairings, async/sync availability, driver-specific incompatibilities, and recommended canonical chains.

docs/README.md's table of contents now links the compatibility guide and also picks up several plugin docs that existed but were never listed (Global Database Failover, Global Database Read/Write Splitting, Custom Endpoint, Okta Authentication, Blue/Green, Limitless, Developer).

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@karenc-bq
karenc-bq force-pushed the docs/compatibility-docs branch from 7d5892f to 6efbbbf Compare August 5, 2026 23:31
Comment on lines +181 to +196
## Recommended canonical chains

| Use case | Sync chain | Async chain |
|---|---|---|
| Aurora PG — R/W splitting + failover + EFM | `read_write_splitting,failover_v2,host_monitoring_v2` | `read_write_splitting,failover_v2,host_monitoring_v2` |
| Aurora MySQL (sync, `mysql-connector-python`) — R/W splitting + failover | `read_write_splitting,failover_v2` *(no EFM)* | — |
| Aurora MySQL (async, `aiomysql`) — R/W splitting + failover + EFM | — | `read_write_splitting,failover_v2,host_monitoring_v2` |
| Aurora PG — failover only | `failover_v2,host_monitoring_v2` | `failover_v2,host_monitoring_v2` |
| Aurora MySQL (sync) — failover only | `failover_v2` | — |
| Aurora Global Database — GDB failover + EFM | `gdb_failover,host_monitoring_v2` | `gdb_failover,host_monitoring_v2` |
| Aurora Global Database — GDB R/W splitting + GDB failover | `gdb_rw,gdb_failover` | `gdb_rw,gdb_failover` |

> **Note (async federated/Okta auth):** the async `federated_auth` and `okta` plugins perform their
> IdP HTTP round-trips with [`aiohttp`](https://docs.aiohttp.org/), which is not a runtime dependency
> of this package — install it alongside your async driver (`pip install aiohttp`) when using either
> plugin in an asyncio application. The sync plugins use `requests` and are unaffected.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curious what the value of this section is? It seems to me that it is saying that you shouldn't add efm to a mysql sync setup (already covered above) but you should when it is async or pg (potentially could be shortened to one recommendation line)

- [UsingTheFailoverPlugin.md](../using-plugins/UsingTheFailoverPlugin.md) (v1, not recommended for new code per the table above)
- [UsingTheHostMonitoringPlugin.md](../using-plugins/UsingTheHostMonitoringPlugin.md)
- [UsingTheIamAuthenticationPlugin.md](../using-plugins/UsingTheIamAuthenticationPlugin.md)
- [FailoverConfigurationGuide.md](../FailoverConfigurationGuide.md) — retry-budget knobs at the SQLAlchemy / Django boundary

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is ' retry-budget knobs at the SQLAlchemy / Django boundary' supposed to be its own line or a descriptor of thee file - I can't seem to find Django/SQLAlchemy content in the file


| Plugin | Description |
|----------------|----------------------------------------------------|
| [dev](../using-plugins/UsingTheDeveloperPlugin.md) | Developer utility plugin for debugging and diagnostics. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| [dev](../using-plugins/UsingTheDeveloperPlugin.md) | Developer utility plugin for debugging and diagnostics. |
| [`dev`](../using-plugins/UsingTheDeveloperPlugin.md) | Developer utility plugin for debugging and diagnostics. |

It might help if it looks the same as the others

| connect_time | ✅ | ✅ | ✅ |
| [fastest_response_strategy](../using-plugins/UsingTheFastestResponseStrategyPlugin.md) | ✅ | ✅ | ✅ |
| [initial_connection](../using-plugins/UsingTheAuroraInitialConnectionStrategyPlugin.md) | ✅ | ✅ | ✅ |
| [limitless](../using-plugins/UsingTheLimitlessPlugin.md) | ❌ | ✅ (PostgreSQL only) | ✅ |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The second check mark should say PG only as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants