{"id":7109,"date":"2019-06-18T16:09:13","date_gmt":"2019-06-18T23:09:13","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7109"},"modified":"2025-06-13T21:10:55","modified_gmt":"2025-06-14T04:10:55","slug":"the-sprouts-of-sdk-3","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/the-sprouts-of-sdk-3\/","title":{"rendered":"Os brotos do \"SDK 3\""},"content":{"rendered":"<p>O software est\u00e1 vivo. Com isso, n\u00e3o estou me referindo \u00e0 parte em que ele pode ocasionalmente incomod\u00e1-lo com a forma como chega a um determinado estado. Isso provavelmente pode ser explicado por um bug em algum lugar.<\/p>\n<p>Por vivo, estou me referindo ao fato de que um software bem amado e bem usado est\u00e1 em constante crescimento e mudan\u00e7a em resposta a est\u00edmulos. \u00c0 medida que o ambiente muda, ele muda. \u00c0 medida que os objetivos mudam, ele se expande. Qualquer coisa que n\u00e3o se mantenha fiel a isso ganha um apelido novo e indesejado em nosso mundo de software: <strong>legado<\/strong>.<\/p>\n<p>Estendendo a met\u00e1fora, estamos falando de flora ou fauna? Definitivamente, de flora.<\/p>\n<p>As plantas se adaptam conforme as esta\u00e7\u00f5es mudam, conforme o ambiente muda, para tirar proveito da fauna pr\u00f3xima e assim por diante. De fato, os sobreviventes respondem at\u00e9 mesmo ao ataque de insetos (insetos!).<\/p>\n<h2>Crescimento para novos recursos<\/h2>\n<p>Primeiro, deixe-me mencionar brevemente que o que estou falando aqui \u00e9 \"SDK 3\" com as aspas relevantes. Na pr\u00e1tica, em vez de tentar vincular artificialmente todos os SDKs do Couchbase Server a um n\u00famero de vers\u00e3o comum, eles seguem o padr\u00e3o <a href=\"https:\/\/semver.org\/\">Padr\u00e3o de versionamento sem\u00e2ntico de fato<\/a>. Assim, quando atualizamos um recurso de uma plataforma espec\u00edfica, atualizamos a vers\u00e3o ponto-menor e, quando introduzimos uma nova plataforma, ela come\u00e7a na vers\u00e3o 1.0.<\/p>\n<p>Ent\u00e3o, o que significa \"SDK 3\"? \u00c9 o nome que damos a um conjunto de recursos comuns, respeitando os idiomas da plataforma, para os SDKs que est\u00e3o trazendo novos recursos importantes e atualizando as interfaces para o que h\u00e1 de mais recente na plataforma.  Essa n\u00e3o \u00e9 uma tarefa f\u00e1cil!<\/p>\n<p>Metaforicamente, chame-a de uma planta com uma muta\u00e7\u00e3o em rela\u00e7\u00e3o \u00e0 gera\u00e7\u00e3o anterior que permitir\u00e1 que ela flores\u00e7a nesse novo ambiente.<\/p>\n<p>O que mudou no ambiente que leva a essa necessidade de muta\u00e7\u00e3o?<\/p>\n<p>Quando lan\u00e7amos o primeiro SDK do Node.JS, as bibliotecas de promessas ainda n\u00e3o existiam e a mudan\u00e7a para o async-await certamente n\u00e3o havia come\u00e7ado. H\u00e1 algumas mudan\u00e7as que podemos fazer na assinatura para tornar esse SDK mais f\u00e1cil de usar. Com o Java, o Couchbase tem sido um l\u00edder na ado\u00e7\u00e3o de um modelo de programa\u00e7\u00e3o reativa. Fomos os primeiros a adotar o RxJava, e o microclima ao nosso redor \u00e9 mais prop\u00edcio ao Reactive Streams e ao Project Reactor. Em rela\u00e7\u00e3o ao .NET, fomos r\u00e1pidos na portabilidade para o .NET Core e tamb\u00e9m adicionamos o async-await mais recente, embora um pouco de poda e reorganiza\u00e7\u00e3o nos d\u00ea uma planta mais atraente.<\/p>\n<p>A lista de fato continua: Python 3, Scala se tornando mais popular, PHP com uma vers\u00e3o principal e assim por diante.<\/p>\n<h2>Crescimento do dossel<\/h2>\n<p>O crescimento aqui no \"SDK 3\" n\u00e3o se aplica somente \u00e0 flora do SDK. Nas pr\u00f3ximas semanas, haver\u00e1 algum crescimento nas \u00e1reas de recursos do Couchbase Server tamb\u00e9m. Embora eu n\u00e3o queira anunciar previamente os muitos recursos que voc\u00ea ver\u00e1 l\u00e1, uma coisa que voc\u00ea ver\u00e1 \u00e9 o suporte para um recurso de visualiza\u00e7\u00e3o de cole\u00e7\u00f5es. Fizemos isso de forma a garantir a compatibilidade com vers\u00f5es mais antigas, para que voc\u00ea ainda possa usar uma dessa nova safra junto com o seu, aham, crescimento maduro.<\/p>\n<p>Volte ao blog do Couchbase em breve para obter detalhes sobre esses novos lan\u00e7amentos...<\/p>\n<h2>Aparar para obter efici\u00eancia<\/h2>\n<p>Assim como se faz um desbaste de frutas para obter uma safra mais suculenta do restante, removemos alguns dos brotos com menor probabilidade de produ\u00e7\u00e3o. Aqui, isso significa que, daqui para frente, n\u00e3o ofereceremos suporte a vers\u00f5es mais antigas do PHP 5, avan\u00e7ando apenas com o suporte ao Python 3 e removendo algumas plataformas Linux mais antigas. Para Java, isso significa apenas Java 8 em diante. Consulte a documenta\u00e7\u00e3o para obter detalhes sobre compatibilidade, e aceitamos de bom grado coment\u00e1rios sobre o que voc\u00ea gostaria de ver.<\/p>\n<h2>Pragas indesejadas<\/h2>\n<p>Com muitas, muitas... muitas vers\u00f5es de manuten\u00e7\u00e3o, n\u00e3o t\u00ednhamos muitos bugs para eliminar na pr\u00f3xima vers\u00e3o principal, mas havia alguns que n\u00e3o pod\u00edamos corrigir sem quebrar a API. Um dos favoritos \u00e9 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Year_2038_problem\">Bug do ano 2038 do SDK Java<\/a>. Esteja avisado: se voc\u00ea estiver usando o Java SDK 2.x do Couchbase, \u00e0 medida que nos aproximamos de 19 de janeiro de 2038, seu aplicativo provavelmente poder\u00e1 falhar, pois n\u00e3o poder\u00e1 expressar TTLs com vida \u00fatil suficiente.<\/p>\n<p>H\u00e1 outras \u00e1reas que s\u00e3o um pouco mais sutis. N\u00e3o ter <a href=\"https:\/\/martinfowler.com\/bliki\/CircuitBreaker.html\">disjuntores<\/a> diretamente em alguns SDKs significava que os desenvolvedores de aplicativos tinham que lidar com isso em um n\u00edvel mais alto. Agora estamos adicionando isso onde for apropriado, embora possa n\u00e3o estar em todas as vers\u00f5es alfa ainda.<\/p>\n<h2>Deixe um Milh\u00e3o de Flores Florescer<\/h2>\n<p>Gostaria de convid\u00e1-lo a conferir os blogs espec\u00edficos de alguns dos lan\u00e7amentos alfa e nos dar um feedback. A <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/\">F\u00f3runs do Couchbase<\/a> s\u00e3o a melhor \u00e1rea para encaminhar o feedback, embora sempre apreciemos <a href=\"https:\/\/issues.couchbase.com\">quest\u00f5es registradas tamb\u00e9m<\/a> e teremos prazer em colaborar com as solicita\u00e7\u00f5es pull.<\/p>\n<p>Jeff Morris tem <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-the-couchbase-net-sdk-3-0-alpha-releases\/\">um blog sobre o .NET Alpha<\/a>falando um pouco mais sobre controle de vers\u00e3o e escopos\/cole\u00e7\u00f5es. Michael Nitschinger continua com <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-the-couchbase-java-sdk-3-0-alpha\/\">Detalhes da API do Cross SDK em seu blog sobre o Java 3.0 Alpha<\/a>. Brett Lawson fala sobre como esse <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-couchbase-go-sdk-2-0-alpha\/\">aplica-se a desenvolvedores de Node.JS com promessas e ECMAScript6<\/a>. Charles Dixon decola a partir da\u00ed com <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-couchbase-go-sdk-2-0-alpha\/\">Go SDK 2.0 alfa<\/a> (um erro intencional). E com os blogs inaugurais, Ellis Breen mostra uma <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-couchbase-python-client-3-0-alpha\/\">fotoc\u00e9lulas inclu\u00eddas Python 3.0 alpha<\/a> enquanto Graham Pople <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-scala-sdk\/\">apresenta o novo e empolgante Scala SDK alpha 1.0<\/a> (o que inclui dois erros de um por um!).<\/p>\n<p>Al\u00e9m de tudo isso, h\u00e1 alfas do PHP e da libcouchbase nos locais habituais, PECL e os links de download e assim por diante.<\/p>\n<hr \/>\n<p>Cortesia da fonte original da foto <a href=\"https:\/\/en.wikipedia.org\/wiki\/Sequoia_sempervirens#\/media\/File:Trees_and_sunshine.JPG\">Imagens da Wikip\u00e9dia<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Software is alive. By that, I am not referring to the part where it can occasionally vex you in how it gets into a certain state. That is probably explainable by a bug somewhere. By alive I am referring to [&hellip;]<\/p>","protected":false},"author":41,"featured_media":7111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1818,1822,9139,2201],"tags":[],"ppma_author":[8993],"class_list":["post-7109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-java","category-node-js","category-python","category-tools-sdks"],"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>The Sprouts of &quot;SDK 3&quot; - 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\/pt\/the-sprouts-of-sdk-3\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Sprouts of &quot;SDK 3&quot;\" \/>\n<meta property=\"og:description\" content=\"Software is alive. By that, I am not referring to the part where it can occasionally vex you in how it gets into a certain state. That is probably explainable by a bug somewhere. By alive I am referring to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/the-sprouts-of-sdk-3\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-18T23:09:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:10:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image-1024x295.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"295\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ingenthr\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/\"},\"author\":{\"name\":\"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/35e939d9fe3dfb1a06f1714ee54bb098\"},\"headline\":\"The Sprouts of &#8220;SDK 3&#8221;\",\"datePublished\":\"2019-06-18T23:09:13+00:00\",\"dateModified\":\"2025-06-14T04:10:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/\"},\"wordCount\":891,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"articleSection\":[\".NET\",\"Java\",\"Node.js\",\"Python\",\"Tools &amp; SDKs\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/\",\"name\":\"The Sprouts of \\\"SDK 3\\\" - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"datePublished\":\"2019-06-18T23:09:13+00:00\",\"dateModified\":\"2025-06-14T04:10:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"width\":2048,\"height\":589},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Sprouts of &#8220;SDK 3&#8221;\"}]},{\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\/35e939d9fe3dfb1a06f1714ee54bb098\",\"name\":\"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e8b5b257dfa7206fd7c2a5d628fc580b\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fd6787feb079d2c67a3835a47901bbb9c03b8921abced82a2a1f6975816df2ad?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fd6787feb079d2c67a3835a47901bbb9c03b8921abced82a2a1f6975816df2ad?s=96&d=mm&r=g\",\"caption\":\"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase\"},\"description\":\"Matt Ingenthron is the Senior Director in Engineering at Couchbase where he focuses on the developer interface across SDKs, connectors and other projects. He has been a contributor to the memcached project, one of the maintainers of the Java spymemcached client, and a core developer on Couchbase.\",\"sameAs\":[\"https:\/\/x.com\/ingenthr\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/matt-ingenthron\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Sprouts of \"SDK 3\" - 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\/pt\/the-sprouts-of-sdk-3\/","og_locale":"pt_BR","og_type":"article","og_title":"The Sprouts of \"SDK 3\"","og_description":"Software is alive. By that, I am not referring to the part where it can occasionally vex you in how it gets into a certain state. That is probably explainable by a bug somewhere. By alive I am referring to [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/the-sprouts-of-sdk-3\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-06-18T23:09:13+00:00","article_modified_time":"2025-06-14T04:10:55+00:00","og_image":[{"width":1024,"height":295,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image-1024x295.png","type":"image\/png"}],"author":"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@ingenthr","twitter_misc":{"Written by":"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/"},"author":{"name":"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/35e939d9fe3dfb1a06f1714ee54bb098"},"headline":"The Sprouts of &#8220;SDK 3&#8221;","datePublished":"2019-06-18T23:09:13+00:00","dateModified":"2025-06-14T04:10:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/"},"wordCount":891,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","articleSection":[".NET","Java","Node.js","Python","Tools &amp; SDKs"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/","url":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/","name":"The Sprouts of \"SDK 3\" - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","datePublished":"2019-06-18T23:09:13+00:00","dateModified":"2025-06-14T04:10:55+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","width":2048,"height":589},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/the-sprouts-of-sdk-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Sprouts of &#8220;SDK 3&#8221;"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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\/35e939d9fe3dfb1a06f1714ee54bb098","name":"Matt Ingenthron, diretor s\u00eanior de engenharia de SDK, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e8b5b257dfa7206fd7c2a5d628fc580b","url":"https:\/\/secure.gravatar.com\/avatar\/fd6787feb079d2c67a3835a47901bbb9c03b8921abced82a2a1f6975816df2ad?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fd6787feb079d2c67a3835a47901bbb9c03b8921abced82a2a1f6975816df2ad?s=96&d=mm&r=g","caption":"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase"},"description":"Matt Ingenthron is the Senior Director in Engineering at Couchbase where he focuses on the developer interface across SDKs, connectors and other projects. He has been a contributor to the memcached project, one of the maintainers of the Java spymemcached client, and a core developer on Couchbase.","sameAs":["https:\/\/x.com\/ingenthr"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/matt-ingenthron\/"}]}},"authors":[{"term_id":8993,"user_id":41,"is_guest":0,"slug":"matt-ingenthron","display_name":"Matt Ingenthron, Senior Director, SDK Engineering, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/fd6787feb079d2c67a3835a47901bbb9c03b8921abced82a2a1f6975816df2ad?s=96&d=mm&r=g","first_name":"Matt","last_name":"Ingenthron","user_url":"","author_category":"","description":"Matt Ingenthron \u00e9 o diretor s\u00eanior de engenharia da Couchbase, onde se concentra na interface do desenvolvedor em SDKs, conectores e outros projetos.  Ele contribuiu para o projeto memcached, foi um dos mantenedores do cliente Java spymemcached e um dos principais desenvolvedores do Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/7109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=7109"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/7109\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/7111"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=7109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=7109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=7109"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=7109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}