diff --git a/client/examples/ovsdb-monitor.rs b/client/examples/ovsdb-monitor.rs
new file mode 100644
index 0000000..bd5362a
--- /dev/null
+++ b/client/examples/ovsdb-monitor.rs
@@ -0,0 +1,59 @@
+use jsonrpsee::core::client::{Subscription, SubscriptionClientT};
+use ovsdb_client::{
+    rpc::{self, RpcClient},
+    schema::{MonitorRequest, UpdateNotification},
+};
+use std::collections::HashMap;
+use tracing::Level;
+use tracing_subscriber::FmtSubscriber;
+
+#[tokio::main]
+async fn main() -> Result<(), Box<dyn std::error::Error>> {
+    let subscriber = FmtSubscriber::builder()
+        .with_max_level(Level::TRACE)
+        .finish();
+    tracing::subscriber::set_global_default(subscriber)?;
+
+    let socket_addr = "127.0.0.1:6641";
+    let database = "OVN_Northbound";
+    let table = "NB_Global";
+
+    let client = rpc::connect_tcp(socket_addr).await?;
+
+    // // 4.1.1.  List Databases
+    let _databases = client.list_databases().await?;
+
+    // // 4.1.2.  Get Schema
+    let schema = client.get_schema(database).await?;
+    let columns = schema
+        .tables
+        .get(table)
+        .expect("table not found")
+        .columns
+        .keys()
+        .cloned()
+        .collect::<Vec<_>>();
+
+    let mut requests = HashMap::new();
+    requests.insert(
+        table.to_owned(),
+        MonitorRequest {
+            columns: Some(columns),
+            ..Default::default()
+        },
+    );
+
+    let initial = client.monitor("OVN_Northbound", None, requests).await?;
+    println!("Initial state: {:?}", initial);
+
+    let mut stream: Subscription<UpdateNotification<serde_json::Value>> = client.subscribe_to_method("update").await?;
+
+    while let Some(update) = stream.next().await {
+        match update {
+            Ok(update) => println!("Received update: {:?}", update),
+            Err(e) => eprintln!("Error receiving update: {:?}", e),
+        }
+    }
+
+    Ok(())
+}
