MCPcopy Index your code
hub / github.com/aws/aws-advanced-jdbc-wrapper

github.com/aws/aws-advanced-jdbc-wrapper @4.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 4.1.0 ↗ · + Follow
6,555 symbols 30,993 edges 717 files 762 documented · 12% 2 cross-repo links updated today4.1.0 · 2026-06-17★ 3446 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

[!NOTE] 📊 We want to hear from you — community survey is open

Help us get to know who's using the AWS Advanced JDBC Wrapper. The survey is a single GitHub Discussion with one question per comment. You answer by reacting with emojis — pick all that apply, multi-select is supported.

  • Takes about 3–5 minutes
  • Covers usage, deployment topology, plugins, frameworks, and your experience
  • Every reaction is visible to the community; total participants are counted from a single 👍 on the participation comment

👉 Take the survey

Amazon Web Services (AWS) JDBC Driver

build_status License Maven Central Javadoc OpenSSF Scorecard

The Amazon Web Services (AWS) JDBC Driver has been redesigned as an advanced JDBC wrapper.

The wrapper is complementary to an existing JDBC driver and aims to extend the functionality of the driver to enable applications to take full advantage of the features of clustered databases such as Amazon Aurora. In other words, the AWS Advanced JDBC Wrapper does not connect directly to any database, but enables support of AWS and Aurora functionalities on top of an underlying JDBC driver of the user's choice. This approach enables service-specific enhancements, without requiring users to change their workflow and existing JDBC driver tooling.

The AWS Advanced JDBC Wrapper is targeted to work with any existing JDBC driver. Currently, the AWS Advanced JDBC Wrapper has been validated to support the PostgreSQL JDBC Driver, MySQL JDBC Driver, and MariaDB JDBC Driver.

The AWS Advanced JDBC Wrapper provides modular functionality through feature plugins, with each plugin being relevant to specific database services based on their architecture and capabilities. For example, AWS Identity and Access Management (IAM) authentication is supported across multiple services, while AWS Secrets Manager applies to services that support password-based authentication. The fast failover plugin provides reduced recovery time during failover for Aurora PostgreSQL and Aurora MySQL clusters.

Benefits of the AWS Advanced JDBC Wrapper for All Aurora and RDS Database Services

Seamless AWS Authentication Service Integration

Built-in support for AWS Identity and Access Management (IAM) authentication eliminates the need to manage database passwords, while AWS Secrets Manager integration provides secure credential management for services that require password-based authentication.

Seamless Query Caching Integration

The driver includes Remote Query Cache Plugin that stores cacheable read-only query results in a remote Valkey cache along with support for plain username/password authentication and IAM authentication with AWS ElastiCache. Applications can opt‑in per query using a SQL query hint that specifies a time‑to‑live (TTL).

Preserve Existing Workflows

The wrapper design allows developers to continue using their preferred JDBC drivers and existing database code while gaining service-specific enhancements. No application rewrites are required.

Modular Plugin Architecture

The plugin-based design ensures applications only load the functionality they need, reducing dependencies and overhead.

Benefits of the AWS Advanced JDBC Wrapper for Aurora PostgreSQL, Aurora MySQL, and RDS

Faster Failover and Reduced Downtime

For Aurora PostgreSQL, Aurora MySQL, and RDS Multi-AZ DB clusters, the driver significantly reduces connection recovery time during database failovers. By maintaining a real-time cache of cluster topology and bypassing DNS resolution delays, applications can reconnect to healthy database instances in seconds rather than minutes.

Enhanced Failure Detection

The driver includes Enhanced Failure Monitoring (EFM) that proactively monitors database node health, detecting failures faster than traditional timeout-based approaches. This allows applications to respond to issues before they impact end users.

Using the AWS Advanced JDBC Wrapper with...

Amazon Aurora PostgreSQL and Aurora MySQL

The AWS Advanced JDBC Wrapper provides fast failover capabilities for Aurora PostgreSQL and Aurora MySQL clusters, significantly reducing connection recovery time during database failovers.

Visit Using Failover 2 for more details.

Amazon RDS Multi-AZ DB Clusters

The AWS RDS Multi-AZ DB Clusters are capable of switching over the current writer node to another node in the cluster within approximately 1 second or less, in case of minor engine version upgrade or OS maintenance operations. The AWS Advanced JDBC Wrapper has been optimized for such fast failover when working with AWS RDS Multi-AZ DB Clusters.

With the failover plugin, the downtime during certain DB cluster operations, such as engine minor version upgrades, can be reduced to one second or even less with finely tuned parameters. It supports both MySQL and PostgreSQL clusters.

Visit Support for RDS MultiAZ for more details.

Using the AWS Advanced JDBC Wrapper with Amazon Aurora Global Databases

As of version 3.0.0, the driver supports in-region failover and cross-region planned failover and switchover of Amazon Aurora Global Databases. A Global Writer Endpoint is also recognized and can be handled to minimize potential stale DNS issues. Please check failover plugin, failover2 plugin and Aurora Initial Connection Strategy plugin for more information.

For detailed configuration instructions, see Aurora Global Databases.

Plain Amazon RDS databases

The AWS Advanced JDBC Wrapper also provides limited functionality for RDS provided databases that are not Aurora, see the compatibility matrix for details.

RDS Proxy

As of version 3.0.0 the Simple R/W Splitting Plugin can be used with RDS Proxy. There are limitations with the AWS Advanced JDBC Wrapper and RDS Proxy. This is currently intended, by design, since the main reason is that RDS Proxy transparently re-routes requests to a single database instance. RDS Proxy decides which database instance is used based on many criteria (on a per-request basis). Due to this, functionality like Failover, Enhanced Host Monitoring, and Read/Write Splitting is not compatible since the driver relies on cluster topology and RDS Proxy handles this automatically.

The driver remains useful with RDS Proxy for authentication workflows, such as IAM authentication and AWS Secrets Manager integration. See Compatibility for compatibility information and refer to the using plugins documentation for details.

Visit Using Plain RDS for more details.

Getting Started

For more information on how to download the AWS Advanced JDBC Wrapper, minimum requirements to use it, and how to integrate it within your project and with your JDBC driver of choice, please visit the Getting Started page.

Maven Central

You can find our driver by searching in The Central Repository with GroupId and ArtifactId software.amazon:aws-advanced-jdbc-wrapper.

Maven Central




<dependency>
  <groupId>software.amazon.jdbc</groupId>
  <artifactId>aws-advanced-jdbc-wrapper</artifactId>
  <version>LATEST</version>
</dependency>

Configuring the Driver with AI Tools

The driver ships with a self-contained configuration assistant skill, JDBC-WRAPPER-CONFIGURATION-ASSISTANT.md, that you can drop into your AI tool's knowledge base (Kiro, Cursor, Claude Projects, ChatGPT, Amazon Bedrock, GitHub Copilot, etc.) to help build, review, or troubleshoot wrapper configurations.

For drop-in locations, example prompts, and usage details, see Configuring the Driver with AI Tools in the Getting Started guide.

Properties

Parameter Reference Documentation Link
appId OktaAuthPlugin.APP_ID Okta Authentication Plugin
auditLoggingEnabled EncryptionConfig.AUDIT_LOGGING_ENABLED KMS Encryption Plugin
autoSortWrapperPluginOrder PropertyDefinition.AUTO_SORT_PLUGIN_ORDER Plugins
awsProfile PropertyDefinition.AWS_PROFILE AWS Advanced JDBC Wrapper Parameters
bgBaselineMs BlueGreenStatusProvider.BG_INTERVAL_BASELINE_MS Blue/Green Deployment Plugin
bgdId BlueGreenConnectionPlugin.BGD_ID Blue/Green Deployment Plugin
bgConnectTimeoutMs BlueGreenConnectionPlugin.BG_CONNECT_TIMEOUT

Extension points exported contracts — how you extend this code

ConnectionPluginFactory (Interface)
Interface for plugin factories. This class implements ways to initialize a plugin. [82 implementers]
wrapper/src/main/java/software/amazon/jdbc/ConnectionPluginFactory.java
ExampleDao (Interface)
(no doc) [3 implementers]
examples/SpringTxFailoverExample/src/main/java/example/ExampleDao.java
ExampleRepository (Interface)
(no doc)
examples/SpringHibernateExample/src/main/java/example/data/ExampleRepository.java
UserRepository (Interface)
(no doc)
examples/EncryptSpring/src/main/java/com/example/encryptspring/UserRepository.java
BookRepository (Interface)
(no doc)
examples/SpringHibernateBalancedReaderOneDataSourceExample/src/main/java/example/data/BookRepository.java
BookRepository (Interface)
(no doc)
examples/SpringHibernateBalancedReaderTwoDataSourceExample/src/main/java/example/data/BookRepository.java
ConnectionPlugin (Interface)
Interface for connection plugins. This class implements ways to execute a JDBC method and to clean up resources used bef [10 …
wrapper/src/main/java/software/amazon/jdbc/ConnectionPlugin.java
ConnectionProvider (Interface)
Implement this interface in order to handle the physical connection creation process. [6 implementers]
wrapper/src/main/java/software/amazon/jdbc/ConnectionProvider.java

Core symbols most depended-on inside this repo

add
called by 942
wrapper/src/main/java/software/amazon/jdbc/util/telemetry/TelemetryCounter.java
get
called by 884
wrapper/src/main/java/software/amazon/jdbc/util/Messages.java
mustUsePipeline
called by 834
wrapper/src/main/java/software/amazon/jdbc/ConnectionPluginManager.java
get
called by 788
wrapper/src/test/java/software/amazon/jdbc/util/LazyCleanerImplTest.java
executeWithPlugins
called by 591
wrapper/src/main/java/software/amazon/jdbc/util/WrapperUtils.java
getHost
called by 541
wrapper/src/main/java/software/amazon/jdbc/HostSelector.java
get
called by 483
wrapper/src/main/java/software/amazon/jdbc/util/storage/StorageService.java
set
called by 476
wrapper/src/main/java/software/amazon/jdbc/util/storage/StorageService.java

Shape

Method 5,711
Class 650
Interface 87
Function 77
Enum 30

Languages

Java99%
TypeScript1%
Kotlin1%

Modules by API surface

wrapper/src/main/java/software/amazon/jdbc/wrapper/DatabaseMetaDataWrapper.java179 symbols
wrapper/src/main/java/software/amazon/jdbc/plugin/cache/CachedResultSet.java115 symbols
wrapper/src/main/java/software/amazon/jdbc/wrapper/CallableStatementWrapper.java100 symbols
wrapper/src/main/java/software/amazon/jdbc/wrapper/ResultSetWrapper.java99 symbols
wrapper/src/test/java/integration/util/AuroraTestUtility.java84 symbols
wrapper/src/main/java/software/amazon/jdbc/wrapper/PreparedStatementWrapper.java73 symbols
docs/files/jquery.min.js63 symbols
wrapper/src/main/java/software/amazon/jdbc/PluginServiceImpl.java57 symbols
wrapper/src/test/java/integration/container/tests/BlueGreenDeploymentTests.java56 symbols
wrapper/src/main/java/software/amazon/jdbc/PartialPluginService.java56 symbols
wrapper/src/main/java/software/amazon/jdbc/wrapper/ConnectionWrapper.java51 symbols
wrapper/src/test/java/integration/host/TestEnvironment.java45 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

Datastores touched

(mysql)Database · 1 repos
postgresDatabase · 1 repos
dbDatabase · 1 repos
mydbDatabase · 1 repos
employeesDatabase · 1 repos
dbDatabase · 1 repos
mydbDatabase · 1 repos
test_dbDatabase · 1 repos

For agents

$ claude mcp add aws-advanced-jdbc-wrapper \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact