{"id":5129,"date":"2018-05-15T04:20:15","date_gmt":"2018-05-15T11:20:15","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5129"},"modified":"2025-06-13T22:40:29","modified_gmt":"2025-06-14T05:40:29","slug":"ordering-couchbase-functions-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/ordering-couchbase-functions-1\/","title":{"rendered":"Ordenar en Funciones Couchbase - Parte 1"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Couchbase Functions est\u00e1 siendo <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/eventing\/\"><span style=\"font-weight: 400\">introdujo<\/span><\/a><span style=\"font-weight: 400\"> en la versi\u00f3n 5.5 de Couchbase Server bajo la etiqueta <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/eventing\/\">Servicio de eventos Couchbase<\/a>. Couchbase Functions te da la capacidad de mover la l\u00f3gica de negocio basada en datos m\u00e1s cerca de tus datos. La l\u00f3gica empresarial definida por el usuario puede activarse en tiempo real en el servidor cuando los datos cambian como resultado de las interacciones que se producen en las aplicaciones web y de borde.\u00a0<\/span><span style=\"font-weight: 400\">Cuando la computaci\u00f3n reside m\u00e1s cerca de los datos, es importante entender c\u00f3mo se comporta la computaci\u00f3n cuando los datos, que est\u00e1 escuchando, cambian. Intentaremos entender c\u00f3mo reacciona el Servicio de Eventos al orden de las mutaciones.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium_large wp-image-5152\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/05\/eventing-fn-768x403.png\" alt=\"\" width=\"768\" height=\"403\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/eventing-fn-768x403.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/eventing-fn-300x158.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/eventing-fn-1024x538.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/eventing-fn-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/eventing-fn.png 1238w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Empecemos y entendamos el comportamiento con un ejemplo sencillo. Vamos a crear una funci\u00f3n de prueba con el siguiente c\u00f3digo y asumir la configuraci\u00f3n por defecto (es decir, 3 trabajadores) para la funci\u00f3n.<\/span><\/p>\n<pre class=\"p1\">function OnUpdate(doc, meta) \r\n{ \r\n  log('Created Doc ID:', \u00a0meta.id); \r\n} \r\n\r\nfunction OnDelete(meta) \r\n{ \r\n  log('Deleted Doc ID:', \u00a0meta.id); \r\n}<\/pre>\n<p><span style=\"font-weight: 400\">Nota: Elija \"Todo\" en el l\u00edmite de alimentaci\u00f3n en todas las operaciones siguientes durante el despliegue de la funci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En el cubo de origen que escucha esta funci\u00f3n, vamos a insertar unos 10 documentos con IDs num\u00e9ricos crecientes. En el archivo de registro de la aplicaci\u00f3n para esta Funci\u00f3n, ver\u00e1 algo similar a las siguientes entradas. <\/span><\/p>\n<pre class=\"p1\">2018-05-13T11:36:05.163-04:00 [INFO] \"Created Doc ID:\" \"2\" \r\n2018-05-13T11:36:05.163-04:00 [INFO] \"Created Doc ID:\" \"3\" \r\n2018-05-13T11:36:05.163-04:00 [INFO] \"Created Doc ID:\" \"9\" \r\n2018-05-13T11:36:05.163-04:00 [INFO] \"Created Doc ID:\" \"8\" \r\n2018-05-13T11:36:05.164-04:00 [INFO] \"Created Doc ID:\" \"1\" \r\n2018-05-13T11:36:05.164-04:00 [INFO] \"Created Doc ID:\" \"0\" \r\n2018-05-13T11:36:05.165-04:00 [INFO] \"Created Doc ID:\" \"5\" \r\n2018-05-13T11:36:05.165-04:00 [INFO] \"Created Doc ID:\" \"4\" \r\n2018-05-13T11:36:05.165-04:00 [INFO] \"Created Doc ID:\" \"7\" \r\n2018-05-13T11:36:05.165-04:00 [INFO] \"Created Doc ID:\" \"6\"<\/pre>\n<p><span style=\"font-weight: 400\">\u00a0T<\/span><span style=\"font-weight: 400\">ry undeploying and deploying the above Function and we observe that ordering of the IDs(\/changes) is not the same. Puede repetir este paso varias veces para reforzar esta observaci\u00f3n.<\/span><\/p>\n<pre class=\"p1\">2018-05-13T11:59:17.504-04:00 [INFO] \"Created Doc ID:\" \"8\" \r\n2018-05-13T11:59:17.504-04:00 [INFO] \"Created Doc ID:\" \"9\" \r\n2018-05-13T11:59:17.504-04:00 [INFO] \"Created Doc ID:\" \"3\" \r\n2018-05-13T11:59:17.504-04:00 [INFO] \"Created Doc ID:\" \"2\" \r\n2018-05-13T11:59:17.505-04:00 [INFO] \"Created Doc ID:\" \"1\" \r\n2018-05-13T11:59:17.505-04:00 [INFO] \"Created Doc ID:\" \"0\" \r\n2018-05-13T11:59:17.507-04:00 [INFO] \"Created Doc ID:\" \"4\" \r\n2018-05-13T11:59:17.507-04:00 [INFO] \"Created Doc ID:\" \"7\" \r\n2018-05-13T11:59:17.507-04:00 [INFO] \"Created Doc ID:\" \"6\" \r\n2018-05-13T11:59:17.507-04:00 [INFO] \"Created Doc ID:\" \"5\"<\/pre>\n<p><b>Retorno#1 : La funci\u00f3n no procesa los documentos en el orden en que fueron insertados.<\/b><\/p>\n<p><span style=\"font-weight: 400\">Ahora, borremos uno de los documentos insertados (en nuestro ejemplo, he borrado DocId#2).  Inmediatamente observamos la siguiente entrada en el registro (que es correcta):<\/span><\/p>\n<pre class=\"p1\">2018-05-13T11:43:10.165-04:00 [INFO] \"Deleted Doc ID:\" \"2\"<\/pre>\n<p><span style=\"font-weight: 400\">Ahora, Despleguemos la Funci\u00f3n y Volvamos a Desplegarla. Observamos el siguiente orden:<\/span><\/p>\n<pre class=\"p1\">2018-05-13T11:44:04.808-04:00 [INFO] \"Created Doc ID:\" \"8\" \r\n2018-05-13T11:44:04.808-04:00 [INFO] \"Deleted Doc ID:\" \"2\" \r\n2018-05-13T11:44:04.809-04:00 [INFO] \"Created Doc ID:\" \"1\" \r\n2018-05-13T11:44:04.809-04:00 [INFO] \"Created Doc ID:\" \"0\" \r\n2018-05-13T11:44:04.809-04:00 [INFO] \"Created Doc ID:\" \"3\" \r\n2018-05-13T11:44:04.809-04:00 [INFO] \"Created Doc ID:\" \"9\" \r\n2018-05-13T11:44:04.810-04:00 [INFO] \"Created Doc ID:\" \"4\" \r\n2018-05-13T11:44:04.810-04:00 [INFO] \"Created Doc ID:\" \"7\" \r\n2018-05-13T11:44:04.810-04:00 [INFO] \"Created Doc ID:\" \"6\" \r\n2018-05-13T11:44:04.810-04:00 [INFO] \"Created Doc ID:\" \"5\"<\/pre>\n<p><span style=\"font-weight: 400\">Observamos que:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400\">\"Falta \"Created Doc ID:\" \"2<\/span><\/li>\n<li><span style=\"font-weight: 400\">\"Doc ID borrado:\" \"2\" aparece antes en el orden de procesamiento y no despu\u00e9s.<\/span><\/li>\n<\/ul>\n<p><b>Comida para llevar#2 : Desduplicaci\u00f3n<\/b><\/p>\n<p><span style=\"font-weight: 400\">Las operaciones sucesivas (\/cambios\/mutaciones) a un documento son coalescenciadas (dedup'ed), cuando ocurren en r\u00e1pida sucesi\u00f3n, por el Servidor Couchbase para que la sobrecarga en el disco y la memoria sea minimizada. Couchbase Server env\u00eda s\u00f3lo la \u00faltima versi\u00f3n de un documento en el flujo DCP.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En el ejemplo anterior, esta es la raz\u00f3n por la que el manejador OnUpdate no se dispara ya que el borrado del DocID fue el \u00faltimo en la secuencia de operaciones en el documento; esto es, cuando UPDATE y DELETE ocurren en orden, entonces se unen en DELETE, que ocurre m\u00e1s tarde en la l\u00ednea de tiempo. Es decir, cuando m\u00faltiples Actualizaciones (o incluso una sola Actualizaci\u00f3n) a un documento son seguidas por el Borrado del documento, entonces s\u00f3lo el evento de Borrado es visto por las Funciones de Couchbase, ya que las actualizaciones se unen en el evento final - que es el Borrado del documento.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Un comportamiento similar se ver\u00e1, si un documento sufre m\u00faltiples actualizaciones en una ventana peque\u00f1a, y luego una Funci\u00f3n consume los cambios; s\u00f3lo el \u00faltimo cambio que ocurra en el documento se ver\u00e1 y los cambios intermedios se perder\u00e1n. Este es el caso s\u00f3lo cuando una nueva funci\u00f3n se despliega en un cubo existente con muchos cambios que ocurren a un cubo. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Si la Funci\u00f3n es desplegada y ocurren cambios en un documento, entonces cada cambio ser\u00e1 manejado por la Funci\u00f3n. Pero, si el n\u00famero de cambios que ocurren a un documento es muy alto en un intervalo de tiempo peque\u00f1o, Couchbase Server todav\u00eda hace alguna cantidad de Deduplicaci\u00f3n; y esto podr\u00eda llevar a que no todos los cambios activen la Funci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Es decir, si 10 documentos fueron Insertados y uno de ellos Eliminado, entonces cuando una Funci\u00f3n es desplegada, no est\u00e1 garantizado que la operaci\u00f3n de Eliminaci\u00f3n (en el Documento Insertado y luego en el Eliminado) sea vista al final por la Funci\u00f3n.<\/span><\/p>\n<p><b>Take-Away#3 : La funci\u00f3n no procesa las mutaciones en el orden en que fueron realizadas. <\/b><\/p>\n<p><span style=\"font-weight: 400\">\u00bfQu\u00e9 est\u00e1 pasando aqu\u00ed? En <a href=\"https:\/\/www.couchbase.com\/blog\/es\/ordering-couchbase-functions-2\/\">Parte 2<\/a> de esta serie de blogs, nos sumergiremos bajo el cap\u00f3 del Servicio de Eventing de Couchbase y entenderemos c\u00f3mo los Eventing Workers procesan las mutaciones.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase Functions is being introduced in the Couchbase Server 5.5 release under the Couchbase Eventing Service. Couchbase Functions gives you the ability to move data-driven business logic closer to your data. User-defined business logic can be triggered in real-time on [&hellip;]<\/p>","protected":false},"author":3013,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821,1816,2273],"tags":[2226,2133],"ppma_author":[9055],"class_list":["post-5129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture","category-couchbase-server","category-eventing","tag-couchbase-functions","tag-functions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ordering in Couchbase Functions - Part 1 - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"When compute resides closer to data, it is important to understand how compute behaves when the data, that it is listening to, changes.\u00a0\u00a0Let\u2019s understand Ordering in Couchbase Functions.\" \/>\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\/ordering-couchbase-functions-1\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ordering in Couchbase Functions - Part 1\" \/>\n<meta property=\"og:description\" content=\"When compute resides closer to data, it is important to understand how compute behaves when the data, that it is listening to, changes.\u00a0\u00a0Let\u2019s understand Ordering in Couchbase Functions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/ordering-couchbase-functions-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-15T11:20:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:40:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/eventing-fn.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1238\" \/>\n\t<meta property=\"og:image:height\" content=\"650\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Venkat Subramanian, Product Manager\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@venkasub\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Venkat Subramanian, Product Manager\" \/>\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\/ordering-couchbase-functions-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/\"},\"author\":{\"name\":\"Venkat Subramanian, Product Manager\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/0756e2347c2166a32f93f9a7e07e9f90\"},\"headline\":\"Ordering in Couchbase Functions &#8211; Part 1\",\"datePublished\":\"2018-05-15T11:20:15+00:00\",\"dateModified\":\"2025-06-14T05:40:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/\"},\"wordCount\":658,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Couchbase Functions\",\"functions\"],\"articleSection\":[\"Couchbase Architecture\",\"Couchbase Server\",\"Eventing\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/\",\"name\":\"Ordering in Couchbase Functions - Part 1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2018-05-15T11:20:15+00:00\",\"dateModified\":\"2025-06-14T05:40:29+00:00\",\"description\":\"When compute resides closer to data, it is important to understand how compute behaves when the data, that it is listening to, changes.\u00a0\u00a0Let\u2019s understand Ordering in Couchbase Functions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#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\/ordering-couchbase-functions-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ordering in Couchbase Functions &#8211; Part 1\"}]},{\"@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\/0756e2347c2166a32f93f9a7e07e9f90\",\"name\":\"Venkat Subramanian, Product Manager\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8f9acdf95e167a15007b71867fe87a9a\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g\",\"caption\":\"Venkat Subramanian, Product Manager\"},\"description\":\"Venkat dabbles in product development and product management and has been developing data\/analytics platforms &amp; products. Significant chunk of his experience has been with Oracle, where he transitioned from being an Engineer in Oracle\u2019s Enterprise Manager team to Product Manager for Oracle's BI\/Analytics suite of products. He has worked in startups in the past helping develop machine-learning\/NLP products and distributed decisioning systems. He lurks around at @venkasub.\",\"sameAs\":[\"https:\/\/x.com\/venkasub\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/venkatcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ordering in Couchbase Functions - Part 1 - The Couchbase Blog","description":"Cuando el c\u00f3mputo reside m\u00e1s cerca de los datos, es importante entender c\u00f3mo se comporta el c\u00f3mputo cuando los datos, que est\u00e1 escuchando, cambian.  Vamos a entender el Ordenamiento en Funciones 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\/es\/ordering-couchbase-functions-1\/","og_locale":"es_MX","og_type":"article","og_title":"Ordering in Couchbase Functions - Part 1","og_description":"When compute resides closer to data, it is important to understand how compute behaves when the data, that it is listening to, changes.\u00a0\u00a0Let\u2019s understand Ordering in Couchbase Functions.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/ordering-couchbase-functions-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-05-15T11:20:15+00:00","article_modified_time":"2025-06-14T05:40:29+00:00","og_image":[{"width":1238,"height":650,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/05\/eventing-fn.png","type":"image\/png"}],"author":"Venkat Subramanian, Product Manager","twitter_card":"summary_large_image","twitter_creator":"@venkasub","twitter_misc":{"Written by":"Venkat Subramanian, Product Manager","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/"},"author":{"name":"Venkat Subramanian, Product Manager","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/0756e2347c2166a32f93f9a7e07e9f90"},"headline":"Ordering in Couchbase Functions &#8211; Part 1","datePublished":"2018-05-15T11:20:15+00:00","dateModified":"2025-06-14T05:40:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/"},"wordCount":658,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Couchbase Functions","functions"],"articleSection":["Couchbase Architecture","Couchbase Server","Eventing"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/","url":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/","name":"Ordering in Couchbase Functions - Part 1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2018-05-15T11:20:15+00:00","dateModified":"2025-06-14T05:40:29+00:00","description":"Cuando el c\u00f3mputo reside m\u00e1s cerca de los datos, es importante entender c\u00f3mo se comporta el c\u00f3mputo cuando los datos, que est\u00e1 escuchando, cambian.  Vamos a entender el Ordenamiento en Funciones Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/ordering-couchbase-functions-1\/#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\/ordering-couchbase-functions-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ordering in Couchbase Functions &#8211; Part 1"}]},{"@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\/0756e2347c2166a32f93f9a7e07e9f90","name":"Venkat Subramanian, Director de Producto","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8f9acdf95e167a15007b71867fe87a9a","url":"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g","caption":"Venkat Subramanian, Product Manager"},"description":"Venkat se dedica al desarrollo y la gesti\u00f3n de productos y ha desarrollado plataformas y productos de datos y an\u00e1lisis. Una parte importante de su experiencia ha sido con Oracle, donde pas\u00f3 de ser ingeniero en el equipo Enterprise Manager de Oracle a director de producto para el conjunto de productos de BI\/Anal\u00edtica de Oracle. Ha trabajado en startups en el pasado ayudando a desarrollar productos de aprendizaje autom\u00e1tico\/NLP y sistemas de toma de decisiones distribuidos. Est\u00e1 al acecho en @venkasub.","sameAs":["https:\/\/x.com\/venkasub"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/venkatcouchbase-com\/"}]}},"authors":[{"term_id":9055,"user_id":3013,"is_guest":0,"slug":"venkatcouchbase-com","display_name":"Venkat Subramanian, Product Manager","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/53cfc83eb606325239f7058417a02969ab8ff0106a374bcdcf5d78f9b749cccd?s=96&d=mm&r=g","author_category":"","last_name":"Subramanian, Product Manager","first_name":"Venkat","job_title":"","user_url":"","description":"Venkat se dedica al desarrollo y la gesti\u00f3n de productos y ha desarrollado plataformas y productos de datos y an\u00e1lisis. Una parte importante de su experiencia ha sido con Oracle, donde pas\u00f3 de ser ingeniero en el equipo Enterprise Manager de Oracle a director de producto para el conjunto de productos de BI\/Anal\u00edtica de Oracle. Ha trabajado en startups en el pasado ayudando a desarrollar productos de aprendizaje autom\u00e1tico\/NLP y sistemas de toma de decisiones distribuidos. Est\u00e1 al acecho en @venkasub."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/5129","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\/3013"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=5129"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/5129\/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=5129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=5129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=5129"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=5129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}