{"id":1954,"date":"2015-09-01T16:13:00","date_gmt":"2015-09-01T16:13:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1954"},"modified":"2024-09-12T02:20:16","modified_gmt":"2024-09-12T09:20:16","slug":"go-sdk-1-0-0-beta","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/","title":{"rendered":"Couchbase Go SDK 1.0.0-beta Released"},"content":{"rendered":"<p>We are excited today to be releasing the first beta of the 1.0.0 version (tagged as 0.9.0) of our official Go SDK. This release includes support for Couchbase 4.0 server features such as N1QL and Multidimensional Scaling (MDS), implements a new bulk operations API and includes a significant number of bug fixes.<\/p>\n<h2>N1QL<\/h2>\n<p>Starting with 1.0.0-beta, the Go SDK now supports performing N1QL queries against your cluster. \u00a0This is as simple as instantiating a N1qlQuery using your query string, specifying any additional options and executing it.<\/p>\n<h2>Bulk Operations<\/h2>\n<p>Bulk operations allow you to perform numerous operations at one time using the synchronous gocb API. \u00a0This is a powerful API allowing you to asynchronously fetch or store thousands of documents at once rather than performing the operations in series.<\/p>\n<h2>Multidimensional Scaling (MDS)<\/h2>\n<p>Multidimensional scaling is a new feature in Couchbase Server 4 that allows you to both scale your cluster out and up.<\/p>\n<p>Previous to 4.0, the services were scaled homogeneously across the server, now you can specify that specific nodes be say a query node or a data node or an index (or both or all three, lots of options), and then on the nodes where more CPU is needed, those nodes can be scaled up with beefier hardware. On the other hand, if you want to scale your data nodes out on cheaper hardware, you can easily do that as well. It\u2019s a great feature for optimizing your cluster for specific workloads.<\/p>\n<p>In order for applications to take advantage of this, the client has to be aware of which nodes are designated for querying (N1QL) and which nodes are responsible for the services, like key\/value CRUD (data nodes). In this release we provide support for MDS by splitting the nodes into specific collections dedicated to a specific task (data, index, query, etc). From an external perspective, there is no difference, however internally only clients that are \u201cservice\u201d aware will work with a 4.0 cluster. For backwards compatibility, however, this (and future versions) of the SDK will continue to work with Couchbase Server 3.0 and 2.5.<\/p>\n<h2>Getting The Release<\/h2>\n<p>Installing this release is identical to previous versions, and is similar to the installation of many other Go modules. \u00a0Use `go get` to install and you are ready!<\/p>\n<pre>\r\n$ go get gopkg.in\/couchbaselabs\/gocb.v0\r\n<\/pre>\n<p>Additionally, the documentation is available here:<\/p>\n<p><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/go-beta\/introduction.html\">https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/go-beta\/introduction.html<\/a><\/p>\n<p>And the API reference here:<br \/>\n<a href=\"https:\/\/godoc.org\/github.com\/couchbaselabs\/gocb\/\">https:\/\/godoc.org\/github.com\/couchbaselabs\/gocb\/<\/a><\/p>\n<p>\u00a0<\/p>\n<p><sub>Special Thanks to Jeff Morris for the MDS explanation.<\/sub><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are excited today to be releasing the first beta of the 1.0.0 version (tagged as 0.9.0) of our official Go SDK. This release includes support for Couchbase 4.0 server features such as N1QL and Multidimensional Scaling (MDS), implements a [&hellip;]<\/p>\n","protected":false},"author":31,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"ppma_author":[9004],"class_list":["post-1954","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"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 Go SDK 1.0.0-beta Released - The Couchbase Blog<\/title>\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\/go-sdk-1-0-0-beta\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Go SDK 1.0.0-beta Released\" \/>\n<meta property=\"og:description\" content=\"We are excited today to be releasing the first beta of the 1.0.0 version (tagged as 0.9.0) of our official Go SDK. This release includes support for Couchbase 4.0 server features such as N1QL and Multidimensional Scaling (MDS), implements a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-01T16:13:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T09:20:16+00:00\" \/>\n<meta name=\"author\" content=\"Brett Lawson, Principal Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brett Lawson, Principal 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\/go-sdk-1-0-0-beta\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/\"},\"author\":{\"name\":\"Brett Lawson, Principal Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f\"},\"headline\":\"Couchbase Go SDK 1.0.0-beta Released\",\"datePublished\":\"2015-09-01T16:13:00+00:00\",\"dateModified\":\"2024-09-12T09:20:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/\"},\"wordCount\":418,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/\",\"name\":\"Couchbase Go SDK 1.0.0-beta Released - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-09-01T16:13:00+00:00\",\"dateModified\":\"2024-09-12T09:20:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#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\/go-sdk-1-0-0-beta\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Go SDK 1.0.0-beta Released\"}]},{\"@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\/5cfc2fbf25776be2a027a474562be02f\",\"name\":\"Brett Lawson, Principal Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ee3586f0c112c20e863af447d44dec8f\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g\",\"caption\":\"Brett Lawson, Principal Software Engineer, Couchbase\"},\"description\":\"Brett Lawson is a Principal Software Engineer at Couchbase. Brett is responsible for the design and development of the Couchbase Node.js and PHP clients as well as playing a role in the design and development of the C library, libcouchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/brett-lawson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Go SDK 1.0.0-beta Released - The Couchbase Blog","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\/go-sdk-1-0-0-beta\/","og_locale":"en_US","og_type":"article","og_title":"Couchbase Go SDK 1.0.0-beta Released","og_description":"We are excited today to be releasing the first beta of the 1.0.0 version (tagged as 0.9.0) of our official Go SDK. This release includes support for Couchbase 4.0 server features such as N1QL and Multidimensional Scaling (MDS), implements a [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-09-01T16:13:00+00:00","article_modified_time":"2024-09-12T09:20:16+00:00","author":"Brett Lawson, Principal Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Brett Lawson, Principal Software Engineer, Couchbase","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/"},"author":{"name":"Brett Lawson, Principal Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f"},"headline":"Couchbase Go SDK 1.0.0-beta Released","datePublished":"2015-09-01T16:13:00+00:00","dateModified":"2024-09-12T09:20:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/"},"wordCount":418,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/","url":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/","name":"Couchbase Go SDK 1.0.0-beta Released - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-09-01T16:13:00+00:00","dateModified":"2024-09-12T09:20:16+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/go-sdk-1-0-0-beta\/#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\/go-sdk-1-0-0-beta\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Go SDK 1.0.0-beta Released"}]},{"@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\/5cfc2fbf25776be2a027a474562be02f","name":"Brett Lawson, Principal Software Engineer, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ee3586f0c112c20e863af447d44dec8f","url":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","caption":"Brett Lawson, Principal Software Engineer, Couchbase"},"description":"Brett Lawson is a Principal Software Engineer at Couchbase. Brett is responsible for the design and development of the Couchbase Node.js and PHP clients as well as playing a role in the design and development of the C library, libcouchbase.","url":"https:\/\/www.couchbase.com\/blog\/author\/brett-lawson\/"}]}},"authors":[{"term_id":9004,"user_id":31,"is_guest":0,"slug":"brett-lawson","display_name":"Brett Lawson, Principal Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","author_category":"","last_name":"Lawson","first_name":"Brett","job_title":"","user_url":"","description":"Brett Lawson is a Principal Software Engineer at Couchbase. Brett is responsible for the design and development of the Couchbase Node.js and PHP clients as well as playing a role in the design and development of the C library, libcouchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1954","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\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=1954"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1954\/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=1954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=1954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=1954"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=1954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}