{"id":1500,"date":"2014-12-16T16:54:23","date_gmt":"2014-12-16T16:54:23","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1500"},"modified":"2025-06-13T23:52:05","modified_gmt":"2025-06-14T06:52:05","slug":"10-things-developers-should-know-about-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/","title":{"rendered":"10 Things Developers Should Know about Couchbase"},"content":{"rendered":"<p>As a developer, I\u2019ve been using Couchbase Server for couple of months now and I love it. Having written several apps myself, I\u2019ve come to learn many (but not all) of the ins-and-outs of Couchbase. To be a good Couchbase developer, it\u2019s not just enough to know how to use the API\u2019s &#8211; it takes a little bit more.<\/p>\n<p>To give you a quick overview of what developers can get out of Couchbase we\u2019ve put together this <strong>Top 10<\/strong> list of things you should know. These are in no particular order but it\u2019s a good collection of information you should know if you\u2019re building your app with Couchbase.<\/p>\n<p>Here we go&#8230;<\/p>\n<p><strong>#10<\/strong><strong>. <\/strong><strong>Document access in Couchbase is strongly consistent, query access is eventually consistent<\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">Couchbase guarantees strong consistency by making sure that all reads and writes for a particular document go to a single node in a cluster. This is for document (key \/ value ) access. Views are eventually eventually consistent compared to the underlying stored documents.<\/p>\n<p><strong>#9<\/strong><strong>. Writes are asynchronous by default but can be controlled <\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">By default, writes in Couchbase are async &#8211; replication and persistence happen in the background, and the client is notified of a success or failure. The updates are stored in memory, and are flushed to disk and replicated to other Couchbase nodes asynchronously.<\/p>\n<p style=\"margin-left: 36.0pt\">Using the APIs with durability constraints within the application, you can choose to have the update replicated to other nodes or persisted to disk, before the client responds back to the app.<\/p>\n<p><strong>#8.<\/strong><strong> Couchbase has atomic operations for counting and appending<\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">Couchbase supports atomic incr\/decr and append operations for blobs.<\/p>\n<p style=\"margin-left: 36.0pt\"><strong><em>For example:<\/em><\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">cb.set(&#8220;mykey&#8221;, 1)<br \/>\nx = cb.incr(&#8220;mykey&#8221;)<br \/>\nputs x #=&gt; 2<\/p>\n<p style=\"margin-left: 36.0pt\">incr is both writing and returning the resulting value.<\/p>\n<p style=\"margin-left: 36.0pt\">The update operation occurs on the server and is provided at the protocol level. This means that it is atomic on the cluster, and executed by the server. Instead of a two-stage operation, it is a single atomic operation.<\/p>\n<p><strong>#7.<\/strong><strong> Start with everything in one bucket<\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">A bucket is equivalent to a database. You store objects of different characteristics or attributes in the same bucket. So if you are moving from a RDBMS, you should store records from multiple tables in a single bucket.<\/p>\n<p style=\"margin-left: 36.0pt\">Remember to create a \u201ctype\u201d attribute that will help you differentiate the various objects stored in the bucket and create indexes on them.\u00a0It is recommended to start with one bucket and grow to more buckets when necessary.<\/p>\n<p><strong>#6.<\/strong><strong> Try to use 5 or less buckets in Couchbase. Never more than 10.<\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">Documents don\u2019t have a fixed schema, multiple documents with different schema can be in the same bucket. Most deployments have a low number of buckets (usually 2 or 3) and only a few upwards of 5. Although there is no hard limit in the software, the max of 10 buckets comes from some known CPU and disk IO overhead of the persistence engine and the fact that we allocate specific amount of memory to each bucket. We certainly plan to reduce this overhead with future releases, but that still wouldn&#8217;t change our recommendation of only having a few buckets.<\/p>\n<p><strong>#5.<\/strong><strong> Use CAS over GetL almost always<\/strong><\/p>\n<p style=\"margin-left: 36.0pt\"><a href=\"https:\/\/www.couchbase.com\/blog\/optimistic-or-pessimistic-locking-which-one-should-you-pick\/\">Optimistic or pessimistic locking, which one should you pick?<\/a> If your app needs locking, first consider using CAS(<a href=\"https:\/\/www.couchbase.com\/blog\/optimistic-or-pessimistic-locking-which-one-should-you-pick\/\">optimistic locking<\/a>) before using GetL (pessimistic locking).<\/p>\n<p style=\"margin-left: 36.0pt\">But remember, locking might not be good for all cases &#8211; your application can have a problem if there is a lock contention. A thread can hold a lock and be de-scheduled by the OS. Then all the threads that want to acquire this lock will be blocked. One option is to avoid locking altogether where possible by using atomic operations. These API&#8217;s can be very helpful on heavily contested data.<\/p>\n<p><strong>#4. <\/strong><strong>Use multi-get operations<\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">Once your client application has a list of document IDs, the highest performance approach to retrieve items in bulk using a multi-GET request. This performs better than a serial loop that tries to GET for each item individually and sequentially.<\/p>\n<p><strong>#3.<\/strong><strong> Keep your client libraries up-to-date <\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">Make sure that you\u2019re using the most recent client library. Couchbase client libraries are available in Java, .NET, C\/C++, Ruby, Python and PHP.<\/p>\n<p><strong>#2. <\/strong><strong>Model your data using JSON documents<\/strong><\/p>\n<p style=\"margin-left: 36.0pt\">Couchbase Server supports JSON and binary document format. First, try modeling your data using JSON. JSON documents can be indexed and queried. You can store binary blobs and range query off of the key names. Start by creating documents from application-level objects. Documents that grow continuously or under high write contention should be split.<\/p>\n<p><strong>#1.<\/strong> <a href=\"https:\/\/www.couchbase.com\/blog\/performance-oriented-architecture\/\"><strong>Use indexes effectively<\/strong><\/a><\/p>\n<p style=\"margin-left: 36.0pt\">Use primary key access as much as possible. Couchbase has keys and metadata in memory &#8211; data accesses are fast. Use secondary indexes for less performance sensitive paths or for analytics. Start with 4 design documents and less than 10 views per design document. Create a few \u201clong\u201d indexes that can be used for multiple queries and use creative filtering. Construct indexes to \u201cemit\u201d the smallest amount of data possible: use \u201cnull\u201d for value if you do not have any reduce function.<\/p>\n<p><strong>Just 10 things? <\/strong>No, of course not! Couchbase is a NoSQL database system and after you try it you will find that there\u2019s a lot more you will learn. If you feel that I missed something important that should be added in the top 10 list, feel free to add them using the comments below.<\/p>\n<p>Enjoy!<\/p>\n<p><strong>Related Links<\/strong><\/p>\n<ul>\n<li>Couchbase Developer Guide<\/li>\n<li>Couchbase Documentation<\/li>\n<li>Couchbase Developer Page<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>As a developer, I\u2019ve been using Couchbase Server for couple of months now and I love it. Having written several apps myself, I\u2019ve come to learn many (but not all) of the ins-and-outs of Couchbase. To be a good Couchbase [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9407,2201],"tags":[],"ppma_author":[8972],"class_list":["post-1500","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruby","category-tools-sdks"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>10 Things Developers Should Know about Couchbase<\/title>\n<meta name=\"description\" content=\"Learn the top 10 list of things that Developers must know about the Couchbase to be a good Couchbase developer and to build an app using Couchbase.\" \/>\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\/10-things-developers-should-know-about-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"10 Things Developers Should Know about Couchbase\" \/>\n<meta property=\"og:description\" content=\"Learn the top 10 list of things that Developers must know about the Couchbase to be a good Couchbase developer and to build an app using Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T16:54:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:52:05+00:00\" \/>\n<meta name=\"author\" content=\"Don Pinto, Principal Product Manager, 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=\"Don Pinto, Principal Product Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/\"},\"author\":{\"name\":\"Don Pinto, Principal Product Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/eb130a1e0278989e089a7fbbf8bc754c\"},\"headline\":\"10 Things Developers Should Know about Couchbase\",\"datePublished\":\"2014-12-16T16:54:23+00:00\",\"dateModified\":\"2025-06-14T06:52:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/\"},\"wordCount\":913,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Ruby\",\"Tools &amp; SDKs\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/\",\"name\":\"10 Things Developers Should Know about Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T16:54:23+00:00\",\"dateModified\":\"2025-06-14T06:52:05+00:00\",\"description\":\"Learn the top 10 list of things that Developers must know about the Couchbase to be a good Couchbase developer and to build an app using Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#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\/10-things-developers-should-know-about-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"10 Things Developers Should Know about Couchbase\"}]},{\"@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\/eb130a1e0278989e089a7fbbf8bc754c\",\"name\":\"Don Pinto, Principal Product Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/39c6d6178c73f0dc09af63f930a4f37d\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/574759a111515cb8c5d5a1f5268d2759050bd8383654dc0d9393324f0c35fae0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/574759a111515cb8c5d5a1f5268d2759050bd8383654dc0d9393324f0c35fae0?s=96&d=mm&r=g\",\"caption\":\"Don Pinto, Principal Product Manager, Couchbase\"},\"description\":\"Don Pinto is a Principal Product Manager at Couchbase and is currently focused on advancing the capabilities of Couchbase Server. He is extremely passionate about data technology, and in the past has authored several articles on Couchbase Server including technical blogs and white papers. Prior to joining Couchbase, Don spent several years at IBM where he maintained the role of software developer in the DB2 information management group and most recently as a program manager on the SQL Server team at Microsoft. Don holds a master's degree in computer science and a bachelor's in computer engineering from the University of Toronto, Canada.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/don-pinto\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"10 Things Developers Should Know about Couchbase","description":"Learn the top 10 list of things that Developers must know about the Couchbase to be a good Couchbase developer and to build an app using Couchbase.","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\/10-things-developers-should-know-about-couchbase\/","og_locale":"en_US","og_type":"article","og_title":"10 Things Developers Should Know about Couchbase","og_description":"Learn the top 10 list of things that Developers must know about the Couchbase to be a good Couchbase developer and to build an app using Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T16:54:23+00:00","article_modified_time":"2025-06-14T06:52:05+00:00","author":"Don Pinto, Principal Product Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Don Pinto, Principal Product Manager, Couchbase","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/"},"author":{"name":"Don Pinto, Principal Product Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/eb130a1e0278989e089a7fbbf8bc754c"},"headline":"10 Things Developers Should Know about Couchbase","datePublished":"2014-12-16T16:54:23+00:00","dateModified":"2025-06-14T06:52:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/"},"wordCount":913,"commentCount":3,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Ruby","Tools &amp; SDKs"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/","name":"10 Things Developers Should Know about Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T16:54:23+00:00","dateModified":"2025-06-14T06:52:05+00:00","description":"Learn the top 10 list of things that Developers must know about the Couchbase to be a good Couchbase developer and to build an app using Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/10-things-developers-should-know-about-couchbase\/#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\/10-things-developers-should-know-about-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"10 Things Developers Should Know about Couchbase"}]},{"@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\/eb130a1e0278989e089a7fbbf8bc754c","name":"Don Pinto, Principal Product Manager, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/39c6d6178c73f0dc09af63f930a4f37d","url":"https:\/\/secure.gravatar.com\/avatar\/574759a111515cb8c5d5a1f5268d2759050bd8383654dc0d9393324f0c35fae0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/574759a111515cb8c5d5a1f5268d2759050bd8383654dc0d9393324f0c35fae0?s=96&d=mm&r=g","caption":"Don Pinto, Principal Product Manager, Couchbase"},"description":"Don Pinto is a Principal Product Manager at Couchbase and is currently focused on advancing the capabilities of Couchbase Server. He is extremely passionate about data technology, and in the past has authored several articles on Couchbase Server including technical blogs and white papers. Prior to joining Couchbase, Don spent several years at IBM where he maintained the role of software developer in the DB2 information management group and most recently as a program manager on the SQL Server team at Microsoft. Don holds a master's degree in computer science and a bachelor's in computer engineering from the University of Toronto, Canada.","url":"https:\/\/www.couchbase.com\/blog\/author\/don-pinto\/"}]}},"authors":[{"term_id":8972,"user_id":4,"is_guest":0,"slug":"don-pinto","display_name":"Don Pinto, Principal Product Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/574759a111515cb8c5d5a1f5268d2759050bd8383654dc0d9393324f0c35fae0?s=96&d=mm&r=g","author_category":"","last_name":"Pinto, Principal Product Manager, Couchbase","first_name":"Don","job_title":"","user_url":"","description":"Don Pinto is a Principal Product Manager at Couchbase and is currently focused on advancing the capabilities of Couchbase Server. He is extremely passionate about data technology, and in the past has authored several articles on Couchbase Server including technical blogs and white papers. Prior to joining Couchbase, Don spent several years at IBM where he maintained the role of software developer in the DB2 information management group and most recently as a program manager on the SQL Server team at Microsoft. Don holds a master's degree in computer science and a bachelor's in computer engineering from the University of Toronto, Canada."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1500","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\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=1500"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/1500\/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=1500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=1500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=1500"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=1500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}