{"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\/es\/why-come2play-chose-membase\/","title":{"rendered":"Por qu\u00e9 Come2Play eligi\u00f3 Membase"},"content":{"rendered":"<p><em>Post invitado: Tom Rosenfeld, Jefe de equipo, Come2Play<\/em><\/p>\n<p>Come2Play es una empresa que sirve juegos web multijugador en l\u00ednea. Nuestro sitio sirve a m\u00e1s de 4 millones de jugadores al mes, con decenas de miles de jugadores en un momento dado. Utilizamos MySQL como base de datos e IIS en nuestros servidores web, que ejecutan ASP.Net y asp cl\u00e1sico (c\u00f3digo heredado).<\/p>\n<p>\u00a0Como aplicaci\u00f3n web a gran escala, nos dimos cuenta de que necesit\u00e1bamos poder escalar. Una de las formas m\u00e1s sensatas y comunes de ayudar al escalado en la arquitectura web actual es utilizar una capa de almacenamiento en cach\u00e9, y el software m\u00e1s utilizado para ello es, obviamente, Memcached.<\/p>\n<p>Cuando busqu\u00e9 una librer\u00eda Memcached para ASP.Net encontr\u00e9 el Enyim Memcached Client, que me llev\u00f3 a Membase (entonces llamado NorthScale). Tras experimentar un poco con la versi\u00f3n \"normal\" de Memcached y compararla con Membase, varias ventajas inmediatas quedaron muy claras:<\/p>\n<p class=\"rteindent1\">- Separaci\u00f3n de cubos<br \/>\n- Configuraci\u00f3n muy sencilla<br \/>\n- Facilidad de instalaci\u00f3n<br \/>\n- Una consola de gesti\u00f3n de interfaz web muy pulida e intuitiva<br \/>\n- Una forma segura de utilizar Memcached y Membase en la misma implementaci\u00f3n<\/p>\n<p><strong>En cuanto a la configuraci\u00f3n:<\/strong><br \/>\nEn lugar de tener que gestionar una lista de todos nuestros servidores Memcached en un archivo de configuraci\u00f3n, me limit\u00e9 a definir un \u00fanico punto de entrada a un servidor Membase. Instal\u00e9 Membase en nuestros servidores IIS y dej\u00e9 que localhost fuera el punto de entrada, esquivando as\u00ed la temida bala del fallo de punto \u00fanico y manteniendo nuestros archivos de configuraci\u00f3n sucintos.<\/p>\n<p>Optamos por asimilar el uso de Memcached y Membase de forma muy gradual, para evitar riesgos y no estrangular el desarrollo de nuevas funcionalidades (un punto de vista muy \u00e1gil).<\/p>\n<p>Nuestro proyecto consta de tres fases principales:<\/p>\n<p class=\"rteindent1\">- Fase 1: Almacenamiento en cach\u00e9 de consultas pesadas en un cubo Memcached dedicado<br \/>\n- Fase 2: Almacenamiento en cach\u00e9 de datos espec\u00edficos del usuario en un bucket Memcached espec\u00edfico del usuario.<br \/>\n- Fase 3: Guardar los datos espec\u00edficos del usuario en un bucket de Membase<\/p>\n<p><strong>Fase 1: Consultas pesadas<\/strong><br \/>\nEl reto preliminar era crear una biblioteca apta tanto para .Net como para COM. Una vez que nos ocupamos de nuestra biblioteca, el resto fue f\u00e1cil. El efecto en nuestros servidores MySQL fue muy positivo y notable: una reducci\u00f3n significativa de las tablas temporales signific\u00f3 m\u00e1s memoria libre para los \u00edndices y una mejora masiva del rendimiento general del sitio, por no mencionar la esperada reducci\u00f3n de las consultas\/segundo.<\/p>\n<p>Con la implementaci\u00f3n b\u00e1sica de Memcached, pude implementar la primera fase r\u00e1pidamente usando la consulta con sus par\u00e1metros a\u00f1adidos como claves en Memcached y escribiendo un m\u00e9todo llamado \"GetDataTableCached\", que coge los datos de la cach\u00e9 o de la base de datos en caso de fallo y los almacena en cach\u00e9. Luego, recorriendo todas las llamadas a \"GetDataTable\" pude encontrar y reemplazar todas las llamadas que no eran espec\u00edficas del usuario con \"GetDataTableCached\".<\/p>\n<p>Establezco un tiempo de espera de 15 minutos en estas claves para que los datos de la cach\u00e9 no se vuelvan demasiado obsoletos. De este modo, si alguien cambia una configuraci\u00f3n del sistema a trav\u00e9s de nuestro sistema CMS, \u00e9sta tendr\u00e1 efecto en 15 minutos como m\u00e1ximo. La ventaja de este enfoque es obvia: no hay necesidad de escribir c\u00f3digo para invalidar o actualizar estas claves.<\/p>\n<p>Tambi\u00e9n tenga en cuenta que el almacenamiento en cach\u00e9 de un resultado de los m\u00e9todos podr\u00eda ser a\u00fan m\u00e1s simple con el uso de AOP (por ejemplo, PostSharp). He optado por evitar que debido al aumento de los tiempos de construcci\u00f3n.<\/p>\n<p><strong>Fase 2: Datos espec\u00edficos del usuario<\/strong><br \/>\nEste movimiento es muy gradual, ya que estamos moviendo datos que son:<\/p>\n<p class=\"rteindent1\">- En uso muy alto - comprobamos los logs de MySQL para encontrar estos<br \/>\n- F\u00e1cil de mover: datos que se modifican desde muchos lugares del c\u00f3digo.<br \/>\n\u00a0\u00a0 (por ejemplo, la moneda virtual del usuario) es mucho m\u00e1s dif\u00edcil de mover que los datos que nunca\u00a0<br \/>\n\u00a0\u00a0 cambios (por ejemplo, la fecha de registro del usuario)<\/p>\n<p><strong>Fase 3: Datos espec\u00edficos del usuario con persistencia en disco<\/strong><br \/>\nEste paso fue muy f\u00e1cil despu\u00e9s de las fases anteriores gracias a una soluci\u00f3n muy simple y elegante (y por cierto lo que creo que es el principal punto fuerte de Membase) - utiliza exactamente el mismo protocolo \"on the wire\" utilizado por Memcached. Esto es \u00fatil para dos cosas:<\/p>\n<p class=\"rteindent1\">- Trasladar los datos relevantes de MySQL a Membase<br \/>\n- Utilizar Membase para las nuevas funciones y prescindir por completo de MySQL<\/p>\n<p>En resumen, Membase permite a Come2Play ampliarse f\u00e1cilmente. Nos encanta Membase porque es f\u00e1cil de usar, elegante y pulido.<\/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 v26.5 (Yoast SEO v26.5) - 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\/es\/why-come2play-chose-membase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/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\/es\/why-come2play-chose-membase\/","og_locale":"es_MX","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\/es\/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":"es","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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/why-come2play-chose-membase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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, Jefe de equipo, Come2Play","image":{"@type":"ImageObject","inLanguage":"es","@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 es jefe de equipo en Come2Play. Tom dise\u00f1a y desarrolla una aplicaci\u00f3n altamente escalable y tambi\u00e9n la monitoriza. Tambi\u00e9n ha publicado un blog.","url":"https:\/\/www.couchbase.com\/blog\/es\/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 es jefe de equipo en Come2Play. Tom dise\u00f1a y desarrolla una aplicaci\u00f3n altamente escalable y tambi\u00e9n la monitoriza. Tambi\u00e9n ha publicado un blog."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1832","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1832"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1832\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=1832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1832"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}