{"id":1832,"date":"2014-12-16T17:39:11","date_gmt":"2014-12-16T17:39:11","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1832"},"modified":"2014-12-16T17:39:11","modified_gmt":"2014-12-16T17:39:11","slug":"why-come2play-chose-membase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/why-come2play-chose-membase\/","title":{"rendered":"Por que a Come2Play escolheu o Membase"},"content":{"rendered":"<p><em>Postagem de convidado: Tom Rosenfeld, l\u00edder de equipe, Come2Play<\/em><\/p>\n<p>A Come2Play \u00e9 uma empresa que oferece jogos multijogador on-line na Web. Nosso site atende a mais de 4 milh\u00f5es de jogadores por m\u00eas, com dezenas de milhares de jogadores a qualquer momento. Usamos o MySQL como banco de dados e o IIS em nossos servidores da Web, que executam ASP.Net e asp cl\u00e1ssico (c\u00f3digo legado).<\/p>\n<p>\u00a0Como um aplicativo da Web de grande escala, descobrimos que precis\u00e1vamos ser capazes de escalonar. Uma das maneiras mais sensatas e comuns de ajudar no dimensionamento na arquitetura da Web atual \u00e9 usar uma camada de cache, e o software mais usado para isso \u00e9, obviamente, o Memcached.<\/p>\n<p>Quando procurei uma biblioteca Memcached para ASP.Net, encontrei o Enyim Memcached Client, que me levou ao Membase (ent\u00e3o chamado NorthScale). Depois de experimentar um pouco com a vers\u00e3o \"regular\" do Memcached e compar\u00e1-la com o Membase, v\u00e1rias vantagens imediatas ficaram bem claras:<\/p>\n<p class=\"rteindent1\">- Separa\u00e7\u00e3o de ca\u00e7ambas<br \/>\n- Configura\u00e7\u00e3o muito simples<br \/>\n- Facilidade de instala\u00e7\u00e3o<br \/>\n- Um console de gerenciamento de interface do usu\u00e1rio da Web muito polido e intuitivo<br \/>\n- Uma maneira segura de usar o Memcached e o Membase na mesma implementa\u00e7\u00e3o<\/p>\n<p><strong>Com rela\u00e7\u00e3o \u00e0 configura\u00e7\u00e3o:<\/strong><br \/>\nEm vez de ter que gerenciar uma lista de todos os nossos servidores Memcached em um arquivo de configura\u00e7\u00e3o, eu apenas defini um \u00fanico ponto de entrada para um servidor Membase. Instalei o Membase em nossos servidores IIS e deixei que o localhost fosse o ponto de entrada, evitando assim a temida falha de ponto \u00fanico e mantendo nossos arquivos de configura\u00e7\u00e3o sucintos.<\/p>\n<p>Optamos por assimilar o uso do Memcached e do Membase de forma muito gradual, a fim de evitar riscos e impedir o estrangulamento do desenvolvimento de novos recursos (um ponto de vista muito \u00e1gil).<\/p>\n<p>Definimos o escopo de tr\u00eas fases principais para o nosso projeto:<\/p>\n<p class=\"rteindent1\">- Fase 1: Cache de consultas pesadas em um bucket Memcached dedicado<br \/>\n- Fase 2: Armazenar em cache os dados espec\u00edficos do usu\u00e1rio em um bucket Memcached espec\u00edfico do usu\u00e1rio<br \/>\n- Fase 3: Salvar dados espec\u00edficos do usu\u00e1rio em um bucket do Membase<\/p>\n<p><strong>Fase 1: Consultas pesadas<\/strong><br \/>\nO desafio preliminar aqui foi criar uma biblioteca adequada tanto para .Net quanto para COM. Depois de lidarmos com nossa biblioteca, o resto foi f\u00e1cil. O efeito em nossos servidores MySQL foi muito positivo e percept\u00edvel: uma redu\u00e7\u00e3o significativa nas tabelas tempor\u00e1rias significou mais mem\u00f3ria livre para os \u00edndices e uma melhoria significativa no desempenho geral do site, sem mencionar a redu\u00e7\u00e3o esperada nas consultas\/segundo.<\/p>\n<p>Com a implementa\u00e7\u00e3o b\u00e1sica do Memcached em vigor, consegui implementar a primeira fase rapidamente usando a consulta com seus par\u00e2metros anexados como chaves no Memcached e escrevendo um m\u00e9todo chamado \"GetDataTableCached\", que obt\u00e9m dados do cache ou do banco de dados em caso de falha e os armazena em cache. Em seguida, ao executar todas as chamadas para \"GetDataTable\", consegui localizar e substituir todas as chamadas que n\u00e3o eram espec\u00edficas do usu\u00e1rio por \"GetDataTableCached\".<\/p>\n<p>Defino um tempo limite de 15 minutos para essas chaves para que os dados no cache n\u00e3o se tornem muito obsoletos. Portanto, se algu\u00e9m alterar uma configura\u00e7\u00e3o do sistema por meio do nosso sistema CMS, ela entrar\u00e1 em vigor em, no m\u00e1ximo, 15 minutos. A vantagem dessa abordagem \u00e9 \u00f3bvia: n\u00e3o h\u00e1 necessidade de escrever c\u00f3digo para invalidar ou atualizar essas chaves.<\/p>\n<p>Observe tamb\u00e9m que o armazenamento em cache do resultado de um m\u00e9todo poderia ser ainda mais simples com o uso de AOP (por exemplo, PostSharp). Optei por evitar isso devido ao aumento do tempo de compila\u00e7\u00e3o.<\/p>\n<p><strong>Fase 2: Dados espec\u00edficos do usu\u00e1rio<\/strong><br \/>\nEssa mudan\u00e7a \u00e9 muito gradual, pois estamos movendo dados que s\u00e3o:<\/p>\n<p class=\"rteindent1\">- Em caso de uso muito intenso, verificamos os registros do MySQL para encontr\u00e1-los<br \/>\n- F\u00e1cil de mover - dados que est\u00e3o sendo alterados em v\u00e1rios locais do c\u00f3digo<br \/>\n\u00a0\u00a0 (por exemplo, a moeda virtual do usu\u00e1rio) \u00e9 muito mais dif\u00edcil de mover do que dados que nunca\u00a0<br \/>\n\u00a0\u00a0 altera\u00e7\u00f5es (por exemplo, a data de registro do usu\u00e1rio)<\/p>\n<p><strong>Fase 3: dados espec\u00edficos do usu\u00e1rio com persist\u00eancia em disco<\/strong><br \/>\nEssa etapa foi muito f\u00e1cil ap\u00f3s as fases anteriores gra\u00e7as a uma solu\u00e7\u00e3o muito simples e elegante (e, a prop\u00f3sito, o que considero o principal ponto forte do Membase): ele usa exatamente o mesmo protocolo \"on the wire\" usado pelo Memcached. Isso \u00e9 \u00fatil para duas coisas:<\/p>\n<p class=\"rteindent1\">- Mover dados relevantes do MySQL para o Membase<br \/>\n- Use o Membase para novos recursos, ignorando completamente o MySQL<\/p>\n<p>Em resumo, o Membase est\u00e1 permitindo que a Come2Play se expanda facilmente. Adoramos o Membase porque ele \u00e9 simples de usar, elegante e sofisticado.<\/p>","protected":false},"excerpt":{"rendered":"<p>Guest post: Tom Rosenfeld, Team Lead, Come2Play Come2Play is a company that serves multiplayer web games online. Our site serves over 4 million players on a monthly basis, with tens of thousands of players at any given moment. We use [&hellip;]<\/p>","protected":false},"author":45,"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":[8988],"class_list":["post-1832","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.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Why Come2Play Chose Membase - 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\/why-come2play-chose-membase\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why Come2Play Chose Membase\" \/>\n<meta property=\"og:description\" content=\"Guest post: Tom Rosenfeld, Team Lead, Come2Play Come2Play is a company that serves multiplayer web games online. Our site serves over 4 million players on a monthly basis, with tens of thousands of players at any given moment. We use [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/why-come2play-chose-membase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T17:39:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tom Rosenfeld, Team Lead, Come2Play\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tom Rosenfeld, Team Lead, Come2Play\" \/>\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\/why-come2play-chose-membase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/\"},\"author\":{\"name\":\"Tom Rosenfeld, Team Lead, Come2Play\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/aa659255fe605f2390a003fc69868885\"},\"headline\":\"Why Come2Play Chose Membase\",\"datePublished\":\"2014-12-16T17:39:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/\"},\"wordCount\":713,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/\",\"name\":\"Why Come2Play Chose Membase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T17:39:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#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\/why-come2play-chose-membase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why Come2Play Chose Membase\"}]},{\"@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\/aa659255fe605f2390a003fc69868885\",\"name\":\"Tom Rosenfeld, Team Lead, Come2Play\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/93a209ad9207e6423204b9a2496d19b0\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b2c5e68ff384273ed50a9127ffc5210e77be916912dbfe7888539bf9b1931150?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b2c5e68ff384273ed50a9127ffc5210e77be916912dbfe7888539bf9b1931150?s=96&d=mm&r=g\",\"caption\":\"Tom Rosenfeld, Team Lead, Come2Play\"},\"description\":\"Tom Rosenfeld is a Team Lead at Come2Play. Tom design and develop a highly scalable application and also monitor it. He has also published one blog.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/tom-rosenfeld\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Why Come2Play Chose Membase - 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\/why-come2play-chose-membase\/","og_locale":"pt_BR","og_type":"article","og_title":"Why Come2Play Chose Membase","og_description":"Guest post: Tom Rosenfeld, Team Lead, Come2Play Come2Play is a company that serves multiplayer web games online. Our site serves over 4 million players on a monthly basis, with tens of thousands of players at any given moment. We use [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/why-come2play-chose-membase\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T17:39:11+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Tom Rosenfeld, Team Lead, Come2Play","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tom Rosenfeld, Team Lead, Come2Play","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/"},"author":{"name":"Tom Rosenfeld, Team Lead, Come2Play","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/aa659255fe605f2390a003fc69868885"},"headline":"Why Come2Play Chose Membase","datePublished":"2014-12-16T17:39:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/"},"wordCount":713,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/","url":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/","name":"Why Come2Play Chose Membase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T17:39:11+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/#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\/why-come2play-chose-membase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Why Come2Play Chose Membase"}]},{"@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\/aa659255fe605f2390a003fc69868885","name":"Tom Rosenfeld, l\u00edder de equipe, Come2Play","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/93a209ad9207e6423204b9a2496d19b0","url":"https:\/\/secure.gravatar.com\/avatar\/b2c5e68ff384273ed50a9127ffc5210e77be916912dbfe7888539bf9b1931150?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b2c5e68ff384273ed50a9127ffc5210e77be916912dbfe7888539bf9b1931150?s=96&d=mm&r=g","caption":"Tom Rosenfeld, Team Lead, Come2Play"},"description":"Tom Rosenfeld \u00e9 l\u00edder de equipe na Come2Play. Tom projeta e desenvolve um aplicativo altamente escal\u00e1vel e tamb\u00e9m o monitora. Ele tamb\u00e9m publicou um blog.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/tom-rosenfeld\/"}]}},"authors":[{"term_id":8988,"user_id":45,"is_guest":0,"slug":"tom-rosenfeld","display_name":"Tom Rosenfeld, Team Lead, Come2Play","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b2c5e68ff384273ed50a9127ffc5210e77be916912dbfe7888539bf9b1931150?s=96&d=mm&r=g","author_category":"","last_name":"Rosenfeld","first_name":"Tom","job_title":"","user_url":"","description":"Tom Rosenfeld \u00e9 l\u00edder de equipe na Come2Play. Tom projeta e desenvolve um aplicativo altamente escal\u00e1vel e tamb\u00e9m o monitora. Ele tamb\u00e9m publicou um blog."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1832","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\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1832"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1832\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1832"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}