{"id":1897,"date":"2015-03-10T19:01:34","date_gmt":"2015-03-10T19:01:34","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1897"},"modified":"2025-06-13T23:49:48","modified_gmt":"2025-06-14T06:49:48","slug":"couchbase-net-sdk-2-0-3-and-1-3-11-now-available","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/","title":{"rendered":"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!"},"content":{"rendered":"<p>This month, we have a couple of maintenance releases before we release Couchbase .NET SDK 2.1.0! Version 2.1.0 will be a significant release for the SDK, especially since we will have support for the async\/await keywords and a new non-blocking IO model for asynchronous operations! We were hoping to get async\/await into this build, but were still integrating and testing.<\/p>\n<p>Here is a sneak preview of what to expect:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/be79ba88d722882806ef.js\"><\/script><\/p>\n<p>In our tests we have gotten up to 10x the performance from the new async\/await methods over the standard synchronous API! We\u2019re anticipating this (2.1.0) release to be the first week of April 2015, so keep your eyes open for it.<\/p>\n<h2>What&#8217;s in 2.0.3?<\/h2>\n<p>Couchbase .NET SDK 2.0.3 is a follow up maintenance\/bug fix release to 2.0.2. Honestly it\u2019s a bit anemic giving that most of the develop efforts are focused on 2.1.0, but here are the Jira tickets:<\/p>\n<h3>Bug<\/h3>\n<ul>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-802\">NCBC-802<\/a>] &#8211; ConnectionTimeout should be SendTimeout in Configuration.*<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-818\">NCBC-818<\/a>] &#8211; If ClientConfiguration contains password, ClusterHelper must honor it<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-824\">NCBC-824<\/a>] &#8211; Authentication exception when opening memcached bucket with password from ClientConfiguration<\/li>\n<\/ul>\n<h3>Improvement<\/h3>\n<ul>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-801\">NCBC-801<\/a>] &#8211; Add async versions of all methods to BucketManager and ClusterManager<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-811\">NCBC-811<\/a>] &#8211; Make operation lifespan configurable<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-816\">NCBC-816<\/a>] &#8211; Make .NET Prepared statement API similar to Java SDK<\/li>\n<\/ul>\n<p>The major <em>feature<\/em> is the addition of async methods for the ClusterManager and BucketManager classes. These were part of an awesome pull request from <a href=\"https:\/\/github.com\/weitaolee\" target=\"_blank\" rel=\"noopener\">Weitao Lee<\/a>!<\/p>\n<h2>What has changed?<\/h2>\n<p>The major changes are <a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-802\">NCBC-802<\/a>, <a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-811\">NCBC-811<\/a>, and <a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-816\">NCBC-816.<\/a> For NCBC-802, the thing to note is that the ConnectionTimeout property is now SendTimeout, because, well&#8230;that is <em>really<\/em> what it configures; the maximum amount of time that an operation can be in IO before failing &#8211; this mainly for explitly terminating the operation if the server is not responding for instance. NCBC-811 makes the timeout for an operation, that is, the total amount of time an operation can be in-flight before it either returns with a timeout or is succesful. The default is 2500ms, but this can be changed by the ClientConfiguration.DefaultOperationLifespan property.<\/p>\n<p>In 2.0.2, we released support for N1QL DP4, in this release we formalized the API for Prepared Statements, making it conistent with how the Java SDK handles Prepared Statements. As of 2.0.3, the client will no longer cache a prepared statement;\u00a0 the application layer should do this however since the cost of requesting a prepared statement and then using it adds little value. So, if you chose to use prepared statements, your best choice is to define a static threadsafe dictionary, like <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/dd287191%28v=vs.110%29.aspx\" target=\"_blank\" rel=\"noopener\">ConcurrentDictionary<\/a>, and cache and reuse the prepared statement after requesting it.<\/p>\n<h2>How Do I Get It?<\/h2>\n<p>The packages are available on NuGet, S3, or you can pull the source directly from master using the tag \u201c2.0.3\u201d or &#8220;1.3.11&#8221;:<\/p>\n<ul>\n<li>On NuGet you&#8217;ll find the packages here (<a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseNetClient\/2.0.3\" target=\"_blank\" rel=\"noopener\">2.0.3<\/a>) and here (<a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseNetClient\/1.3.11\" target=\"_blank\" rel=\"noopener\">1.3.11<\/a>)<\/li>\n<li>Download the binaries here (<a href=\"https:\/\/tinyurl.com\/qhnmvt2\" target=\"_blank\" rel=\"noopener\">2.0.3<\/a>) and here (<a href=\"https:\/\/tinyurl.com\/lgoall5\" target=\"_blank\" rel=\"noopener\">1.3.11<\/a>)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This month, we have a couple of maintenance releases before we release Couchbase .NET SDK 2.1.0! Version 2.1.0 will be a significant release for the SDK, especially since we will have support for the async\/await keywords and a new non-blocking [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,2201],"tags":[1432],"ppma_author":[8970],"class_list":["post-1897","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-tools-sdks","tag-release"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!<\/title>\n<meta name=\"description\" content=\"Read what&#039;s new in the Couchbase .Net SDK 2.0.3 &amp; 1.3.11. Learn the major feature addition of async methods for the ClusterManager &amp; BucketManager classes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!\" \/>\n<meta property=\"og:description\" content=\"Read what&#039;s new in the Couchbase .Net SDK 2.0.3 &amp; 1.3.11. Learn the major feature addition of async methods for the ClusterManager &amp; BucketManager classes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-10T19:01:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:49:48+00:00\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!\",\"datePublished\":\"2015-03-10T19:01:34+00:00\",\"dateModified\":\"2025-06-14T06:49:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/\"},\"wordCount\":479,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"release\"],\"articleSection\":[\".NET\",\"Tools &amp; SDKs\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/\",\"name\":\"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-03-10T19:01:34+00:00\",\"dateModified\":\"2025-06-14T06:49:48+00:00\",\"description\":\"Read what's new in the Couchbase .Net SDK 2.0.3 & 1.3.11. Learn the major feature addition of async methods for the ClusterManager & BucketManager classes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\/\/x.com\/jeffrysmorris\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/jeff-morris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!","description":"Read what's new in the Couchbase .Net SDK 2.0.3 & 1.3.11. Learn the major feature addition of async methods for the ClusterManager & BucketManager classes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/","og_locale":"en_US","og_type":"article","og_title":"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!","og_description":"Read what's new in the Couchbase .Net SDK 2.0.3 & 1.3.11. Learn the major feature addition of async methods for the ClusterManager & BucketManager classes.","og_url":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-03-10T19:01:34+00:00","article_modified_time":"2025-06-14T06:49:48+00:00","author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!","datePublished":"2015-03-10T19:01:34+00:00","dateModified":"2025-06-14T06:49:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/"},"wordCount":479,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["release"],"articleSection":[".NET","Tools &amp; SDKs"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/","name":"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-03-10T19:01:34+00:00","dateModified":"2025-06-14T06:49:48+00:00","description":"Read what's new in the Couchbase .Net SDK 2.0.3 & 1.3.11. Learn the major feature addition of async methods for the ClusterManager & BucketManager classes.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-net-sdk-2-0-3-and-1-3-11-now-available\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase .NET SDK 2.0.3 and 1.3.11 now Available!"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, Senior Software Engineer, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/author\/jeff-morris\/"}]}},"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","author_category":"","last_name":"Jeff Morris, Senior Software Engineer, Couchbase","first_name":"Jeff","job_title":"","user_url":"","description":"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language)."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=1897"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1897\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=1897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=1897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=1897"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=1897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}