diff --git a/docs/content/preview/develop/build-apps/java/ycql-4.6.md b/docs/content/preview/develop/build-apps/java/ycql-4.6.md
index 6a7cca465740..344d76f51253 100644
--- a/docs/content/preview/develop/build-apps/java/ycql-4.6.md
+++ b/docs/content/preview/develop/build-apps/java/ycql-4.6.md
@@ -24,6 +24,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ycql.md b/docs/content/preview/develop/build-apps/java/ycql.md
index 32813cb8141d..8d906aa1dd2f 100644
--- a/docs/content/preview/develop/build-apps/java/ycql.md
+++ b/docs/content/preview/develop/build-apps/java/ycql.md
@@ -24,6 +24,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-ebean.md b/docs/content/preview/develop/build-apps/java/ysql-ebean.md
index b5ebaa247e84..c1e043745e8a 100644
--- a/docs/content/preview/develop/build-apps/java/ysql-ebean.md
+++ b/docs/content/preview/develop/build-apps/java/ysql-ebean.md
@@ -25,6 +25,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-hibernate.md b/docs/content/preview/develop/build-apps/java/ysql-hibernate.md
index 4a982db6dcf1..61c8ae97b1f1 100644
--- a/docs/content/preview/develop/build-apps/java/ysql-hibernate.md
+++ b/docs/content/preview/develop/build-apps/java/ysql-hibernate.md
@@ -25,6 +25,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-jdbc-ssl.md b/docs/content/preview/develop/build-apps/java/ysql-jdbc-ssl.md
index aec20a9a4c65..3cfd3ddee83d 100644
--- a/docs/content/preview/develop/build-apps/java/ysql-jdbc-ssl.md
+++ b/docs/content/preview/develop/build-apps/java/ysql-jdbc-ssl.md
@@ -24,6 +24,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-jdbc.md b/docs/content/preview/develop/build-apps/java/ysql-jdbc.md
index 5a02031466a7..bfe21f432dac 100644
--- a/docs/content/preview/develop/build-apps/java/ysql-jdbc.md
+++ b/docs/content/preview/develop/build-apps/java/ysql-jdbc.md
@@ -24,6 +24,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-sdyb.md b/docs/content/preview/develop/build-apps/java/ysql-sdyb.md
index 0e4130df62e5..499d3d0cbf02 100644
--- a/docs/content/preview/develop/build-apps/java/ysql-sdyb.md
+++ b/docs/content/preview/develop/build-apps/java/ysql-sdyb.md
@@ -25,6 +25,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-spring-data.md b/docs/content/preview/develop/build-apps/java/ysql-spring-data.md
index eaf19ed00a20..f44104844d73 100644
--- a/docs/content/preview/develop/build-apps/java/ysql-spring-data.md
+++ b/docs/content/preview/develop/build-apps/java/ysql-spring-data.md
@@ -24,6 +24,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-vertx-pg-client.md b/docs/content/preview/develop/build-apps/java/ysql-vertx-pg-client.md
new file mode 100644
index 000000000000..0852df123b22
--- /dev/null
+++ b/docs/content/preview/develop/build-apps/java/ysql-vertx-pg-client.md
@@ -0,0 +1,223 @@
+---
+title: Build a Java application that uses YSQL
+headerTitle: Build a Java application
+linkTitle: More examples
+description: Build a sample Java application with the Vertx PG Client and use the YSQL API to connect to and interact with YugabyteDB.
+menu:
+ preview:
+ parent: cloud-java
+ identifier: java-10
+ weight: 550
+type: docs
+---
+
+
+
+[Vertx PG Client](https://vertx.io/docs/vertx-pg-client/java/) is the client for PostgreSQL with simple APIs to communicate with the database. It is a reactive and non-blocking client for handling the database connections with a single threaded API.
+
+Since YugabyteDB is wire compatible with PostgreSQL, Vertx PG Client works with YugabyteDB as well.
+
+## Prerequisites
+
+This tutorial assumes that:
+
+- YugabyteDB up and running. Download and install the latest version of YugabyteDB by following the steps in [Quick start](../../../../quick-start/).
+{{< note title="Note" >}}
+The `executeBatch()` API of the Vertx PG Client is supported in the YugabyteDB version - `2.15.2.0-b0` onwards.
+{{< /note >}}
+- Java Development Kit (JDK) 1.8, or later, is installed.
+- [Apache Maven](https://maven.apache.org/index.html) 3.3 or later, is installed.
+
+## Create and configure the Java project
+
+1. Create a project called "vertx-pg-example".
+
+ ```sh
+ $ mvn archetype:generate \
+ -DgroupId=com.yugabyte \
+ -DartifactId=vertx-pg-example \
+ -DarchetypeArtifactId=maven-archetype-quickstart \
+ -DinteractiveMode=false
+
+ $ cd vertx-pg-example
+ ```
+1. Add the following properties in the `pom.xml` file within the `` element.
+
+ ```xml
+
+ 1.8
+ 1.8
+
+ ```
+
+1. Add the following dependency for the Vertx PG Client within the `` element in the `pom.xml` file.
+
+ ```xml
+
+ io.vertx
+ vertx-pg-client
+ 4.3.2
+
+ ```
+
+1. Install the added dependency.
+
+ ```sh
+ $ mvn install
+ ```
+
+## Create the sample Java application
+
+1. Copy the following Java code to a new file `src/main/java/com/yugabyte/vertxPgExample.java`:
+
+ ```java
+ package com.yugabyte;
+
+ import io.vertx.core.Promise;
+ import io.vertx.core.Vertx;
+ import io.vertx.pgclient.PgConnectOptions;
+ import io.vertx.pgclient.PgPool;
+ import io.vertx.sqlclient.PoolOptions;
+ import io.vertx.sqlclient.Tuple;
+ import io.vertx.sqlclient.Row;
+ import io.vertx.sqlclient.RowStream;
+
+ public class vertxPgExample {
+ public static void main(String[] args) {
+
+ PgConnectOptions options = new PgConnectOptions()
+ .setPort(5433)
+ .setHost("127.0.0.1")
+ .setDatabase("yugabyte")
+ .setUser("yugabyte")
+ .setPassword("yugabyte");
+
+ Vertx vertx = Vertx.vertx();
+ // creating the PgPool with configuration as option and maxsize 10.
+ PgPool pool = PgPool.pool(vertx, options, new PoolOptions().setMaxSize(10));
+
+ //getting a connection from the pool and running the example on that
+ pool.getConnection().compose(connection -> {
+ Promise promise = Promise.promise();
+ // create a test table
+ connection.query("create table test(id int primary key, name text)").execute()
+ .compose(v -> {
+ // insert some test data
+ return connection.query("insert into test values (1, 'Hello'), (2, 'World'), (3,'Example'), (4, 'Vertx'), (5, 'Yugabyte')").execute();
+ })
+ .compose(v -> {
+ // prepare the query
+ return connection.prepare("select * from test order by id");
+ })
+ .map(preparedStatement -> {
+ // create a stream for the prepared statement
+ return preparedStatement.createStream(50, Tuple.tuple());
+ })
+ .onComplete(ar -> {
+ if (ar.succeeded()) {
+ RowStream stream = ar.result();
+ stream
+ .exceptionHandler(promise::fail)
+ .endHandler(promise::complete)
+ .handler(row -> System.out.println(row.toJson())); // Printing each row as JSON
+ } else {
+ promise.fail(ar.cause());
+ }
+ });
+ return promise.future().onComplete(v -> {
+ // close the connection
+ connection.close();
+ });
+ }).onComplete(ar -> {
+ if (ar.succeeded()) {
+ System.out.println("Example ran successfully!");
+ } else {
+ ar.cause().printStackTrace();
+ }
+ });
+
+ }
+ }
+ ```
+
+1. Run the program.
+
+ ```sh
+ $ mvn -q package exec:java -DskipTests -Dexec.mainClass=com.yugabyte.vertxPgExample
+ ```
+
+ You should see the following as the output:
+
+ ```output
+ {"id":1,"name":"Hello"}
+ {"id":2,"name":"World"}
+ {"id":3,"name":"Example"}
+ {"id":4,"name":"Vertx"}
+ {"id":5,"name":"Yugabyte"}
+ Example ran successfully!
+ ```
+## Limitation
+
+[Pub/sub](https://vertx.io/docs/vertx-pg-client/java/#_pubsub) feature of Vertx PG client is currently not supported with YugabyteDB. This limitation will go away when `LISTEN`/`NOTIFY` support is added to YugabyteDB. See [GitHub issue](https://github.com/yugabyte/yugabyte-db/issues/1872).
+
diff --git a/docs/content/preview/develop/build-apps/java/ysql-yb-jdbc.md b/docs/content/preview/develop/build-apps/java/ysql-yb-jdbc.md
index fb5ad70bbd9a..21b77a763e39 100644
--- a/docs/content/preview/develop/build-apps/java/ysql-yb-jdbc.md
+++ b/docs/content/preview/develop/build-apps/java/ysql-yb-jdbc.md
@@ -30,6 +30,12 @@ type: docs
YSQL - JDBC
+
+
+
+ YSQL - Vertx PG Client
+
+
diff --git a/docs/content/preview/reference/drivers/ysql-client-drivers.md b/docs/content/preview/reference/drivers/ysql-client-drivers.md
index 956b5699c0e0..58f204eaf457 100644
--- a/docs/content/preview/reference/drivers/ysql-client-drivers.md
+++ b/docs/content/preview/reference/drivers/ysql-client-drivers.md
@@ -150,6 +150,14 @@ To download binary JAR files, go to [PostgreSQL JDBC driver – Downloads](https
To get the latest versions for projects using [Apache Maven](https://maven.apache.org), see [Maven Central Repository Search](https://search.maven.org/artifact/org.postgresql/postgresql/42.2.14.jre7/jar).
+### Vertx PG Client
+
+[Vertx PG Client](https://vertx.io/docs/vertx-pg-client/java/) is the client for PostgreSQL with simple APIs to communicate with the database. It is a reactive and non-blocking client for handling the database connections with a single threaded API.
+
+For a tutorial on building a sample Java application with the Vertx PG Client, see [Build a Java application](../../../develop/build-apps/java/ysql-vertx-pg-client/).
+
+To get the latest versions for projects using [Apache Maven](https://maven.apache.org), see [Maven Central Repository of Vertx PG Client](https://mvnrepository.com/artifact/io.vertx/vertx-pg-client).
+
## Node.JS
### node-postgres