{"id":501,"date":"2026-03-09T15:31:47","date_gmt":"2026-03-09T15:31:47","guid":{"rendered":"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/bun-vs-nodejs-in-production-2026-real-migration-st\/"},"modified":"2026-03-18T22:31:19","modified_gmt":"2026-03-18T22:31:19","slug":"bun-vs-nodejs-in-production-2026-real-migration-st","status":"publish","type":"post","link":"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/bun-vs-nodejs-in-production-2026-real-migration-st\/","title":{"rendered":"Bun vs Node.js en Producci\u00f3n 2026: Lo Que Aprend\u00ed Despu\u00e9s de Migrar Una API Real"},"content":{"rendered":"<p>Prob\u00e9 Bun 1.0 en octubre de 2023. Dur\u00e9 aproximadamente tres semanas antes de volver a Node.js con la cola entre las patas. En ese momento la compatibilidad con el ecosistema npm era, digamos, aspiracional. Muchos paquetes simplemente no funcionaban \u2014 el error m\u00e1s frecuente era un <code>TypeError: X is not a function<\/code> en cosas que corr\u00edan perfectamente en Node. Archiv\u00e9 el experimento y segu\u00ed con mi vida.<\/p>\n<p>Entonces lleg\u00f3 enero de 2026 y decid\u00ed darle otra oportunidad. Bun 1.2 ten\u00eda un nivel de compatibilidad que, honestamente, no esperaba. Llevamos seis semanas <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/typescript-5x-in-2026-features-that-actually-matte\/\" title=\"en Producci\u00f3n\">en producci\u00f3n<\/a>. <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/08\/benchmarks-de-asistentes-de-cdigo-ia-pruebas-de-re\/\" title=\"esto es lo que\">Esto es lo que<\/a> pas\u00f3.<\/p>\n<h2>Por Qu\u00e9 Siquiera <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/05\/copilot-vs-cursor-vs-codeium\/\" title=\"Vale la Pena\">Vale la Pena<\/a> Revisitarlo en 2026<\/h2>\n<p>Somos un equipo de cuatro personas construyendo una <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/turborepo-vs-nx-which-monorepo-tool-wont-drive-you\/\" title=\"Herramienta de\">herramienta de<\/a> an\u00e1lisis <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/serverless-vs-containers-in-2026-a-practical-decis\/\" title=\"para Equipos de\">para equipos de<\/a> desarrollo \u2014 una API REST que procesa webhooks <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/setting-up-github-actions-for-python-applications\/\" title=\"de GitHub\">de GitHub<\/a> y GitLab, los almacena, y sirve dashboards de m\u00e9tricas. Unos 18 endpoints, PostgreSQL con <code>pg<\/code>, Redis para cach\u00e9 con <code>ioredis<\/code>, corriendo en AWS ECS con containers Docker sobre instancias Graviton2 (arm64). Nada ex\u00f3tico.<\/p>\n<p>La motivaci\u00f3n original era el tiempo de arranque de los containers. Ten\u00edamos cold starts notables en ciertos per\u00edodos de bajo tr\u00e1fico cuando ECS escalaba desde cero, y alguien del equipo mencion\u00f3 que Bun deber\u00eda ayudar ah\u00ed. Mi expectativa era validarlo r\u00e1pido, decir &#8220;s\u00ed, arranque m\u00e1s r\u00e1pido, pero no <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/05\/copilot-vs-cursor-vs-codeium\/\" title=\"Vale la\">vale la<\/a> migraci\u00f3n&#8221; y cerrar el ticket.<\/p>\n<p>No fue as\u00ed.<\/p>\n<p>Lo que cambi\u00f3 mi evaluaci\u00f3n no fue el throughput de la API <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/typescript-5x-in-2026-features-that-actually-matte\/\" title=\"en Producci\u00f3n\">en producci\u00f3n<\/a> \u2014 fue algo que no estaba midiendo: el tiempo de nuestros tests. Pero eso viene despu\u00e9s.<\/p>\n<h2>Los Benchmarks Reales: Qu\u00e9 N\u00fameros Importan y Cu\u00e1les No<\/h2>\n<p>Lo primero que med\u00ed fue startup. Simple: <code>time node index.js<\/code> vs <code>time bun index.js<\/code> en nuestra aplicaci\u00f3n real, no un hello world. Con Node.js 22.14 tard\u00e1bamos unos <strong>820ms<\/strong> en llegar a &#8220;listening on port 3000&#8221;. Con Bun 1.2.4: <strong>180ms<\/strong>.<\/p>\n<p>Eso es real. Y en nuestro caso espec\u00edfico, esa diferencia importa.<\/p>\n<p>Para throughput, arm\u00e9 un benchmark con <code>wrk<\/code>:<\/p>\n<pre><code class=\"language-lua\">-- wrk_test.lua\n-- Simula tr\u00e1fico real: webhook POST con body JSON t\u00edpico\nwrk.method = &quot;POST&quot;\nwrk.body   = '{&quot;ref&quot;:&quot;refs\/heads\/main&quot;,&quot;repository&quot;:{&quot;id&quot;:12345,&quot;name&quot;:&quot;api&quot;}}'\nwrk.headers[&quot;Content-Type&quot;]         = &quot;application\/json&quot;\nwrk.headers[&quot;X-Hub-Signature-256&quot;]  = &quot;sha256=abc123&quot;\n<\/code><\/pre>\n<pre><code class=\"language-bash\"># 30 segundos, 50 conexiones concurrentes, 4 threads\nwrk -t4 -c50 -d30s -s wrk_test.lua http:\/\/localhost:3000\/webhooks\/github\n<\/code><\/pre>\n<p>En mi MacBook Pro M3 con 36GB RAM:<\/p>\n<ul>\n<li><strong>Node.js 22<\/strong>: ~8,400 req\/s, latencia media 5.9ms<\/li>\n<li><strong>Bun 1.2<\/strong>: ~12,100 req\/s, latencia media 4.1ms<\/li>\n<\/ul>\n<p>Un 44% m\u00e1s de throughput. Suena impresionante. El problema es que <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/typescript-5x-in-2026-features-that-actually-matte\/\" title=\"en Producci\u00f3n\">en producci\u00f3n<\/a> real en ECS, con las mismas instancias <code>t4g.medium<\/code>, la diferencia se comprimi\u00f3 bastante \u2014 quedamos en torno a un <strong>18-22% de mejora en throughput<\/strong>. Sigue siendo una mejora real y medible, pero los benchmarks locales claramente sobreestiman la ganancia. Cu\u00e1nto exactamente depende de tu carga de I\/O, tu pool de conexiones, y mil factores m\u00e1s.<\/p>\n<p>La memoria me sorprendi\u00f3 en la direcci\u00f3n contraria. Esperaba que Bun fuera m\u00e1s liviano \u2014 toda la narrativa de marketing habla de eficiencia. En nuestra app, en estado estable con tr\u00e1fico normal, Bun usaba aproximadamente un <strong>12% m\u00e1s de RAM<\/strong> que Node. No es catastr\u00f3fico para nosotros, pero no era <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/langchain-vs-llamaindex-vs-haystack-building-produ\/\" title=\"Lo que\">lo que<\/a> anticipaba. No tengo una explicaci\u00f3n definitiva \u2014 podr\u00eda ser c\u00f3mo Bun gestiona el heap internamente, podr\u00eda ser nuestro c\u00f3digo espec\u00edfico. No voy a afirmar que este n\u00famero se generaliza a cualquier proyecto.<\/p>\n<p>El cold start s\u00ed mejor\u00f3 en ECS. El tiempo promedio desde que el task se marca healthy <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/kubernetes-vs-docker-swarm-vs-nomad-container-orch\/\" title=\"Hasta Que\">hasta que<\/a> sirve el primer request baj\u00f3 de ~4.2 segundos a ~1.8 segundos. Eso s\u00ed cambi\u00f3 algo concreto: pudimos reducir el <code>minimumHealthyPercent<\/code> en nuestros deployments sin ponernos nerviosos.<\/p>\n<h2>Lo <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/kubernetes-vs-docker-swarm-vs-nomad-container-orch\/\" title=\"Que Nadie Te Cuenta\">Que Nadie Te Cuenta<\/a> Sobre Compatibilidad en arm64<\/h2>\n<p>Aqu\u00ed se pone interesante. Y frustrante.<\/p>\n<p><code>pg<\/code>, <code>ioredis<\/code>, <code>Express<\/code> \u2014 todo funcion\u00f3 desde el d\u00eda uno. Sin tocar nada. <code>dotenv<\/code>, <code>pino<\/code> para logging, <code>zod<\/code> para validaci\u00f3n: sin problemas. Hasta ah\u00ed, la compatibilidad de Bun 1.2 con el ecosistema npm est\u00e1ndar es genuinamente s\u00f3lida.<\/p>\n<p>El primer problema gordo vino de un m\u00f3dulo interno nuestro que usa <code>node:crypto<\/code>. Espec\u00edficamente, <code>crypto.createCipheriv<\/code> con AES-256-GCM y AAD (Additional Authenticated Data). En Bun 1.2.4, esto funcionaba en la mayor\u00eda de los casos \u2014 pero hab\u00eda un edge case con payloads que conten\u00edan caracteres no-ASCII en los metadatos donde el resultado difer\u00eda de Node. Tard\u00e9 un d\u00eda entero en identificar este bug. Un d\u00eda que b\u00e1sicamente fue yo mirando diffs de buffers hexadecimales pregunt\u00e1ndome si me estaba volviendo loco.<\/p>\n<p>El fix fue migrar esa l\u00f3gica a la Web Crypto API, que ambos runtimes implementan de manera consistente:<\/p>\n<pre><code class=\"language-javascript\">\/\/ La versi\u00f3n &quot;portable&quot; que funciona igual en Node y Bun:\nasync function encryptWithAAD(keyBuffer, iv, data, additionalData) {\n  const key = await crypto.subtle.importKey(\n    'raw',\n    keyBuffer,\n    { name: 'AES-GCM', length: 256 },\n    false,\n    ['encrypt']\n  );\n\n  \/\/ crypto.subtle es parte del est\u00e1ndar Web Crypto \u2014 comportamiento id\u00e9ntico en ambos\n  const encrypted = await crypto.subtle.encrypt(\n    { name: 'AES-GCM', iv, additionalData },\n    key,\n    data\n  );\n\n  return new Uint8Array(encrypted);\n}\n<\/code><\/pre>\n<p>Deber\u00eda haber usado Web Crypto desde el principio. Lecci\u00f3n aprendida.<\/p>\n<p>El segundo problema: <code>sharp<\/code> para procesamiento de im\u00e1genes (tenemos un endpoint de avatars). Sharp usa bindings nativos de C++. En Linux x86_64 funcion\u00f3 sin drama. En arm64 \u2014 nuestro entorno de producci\u00f3n en Graviton2 \u2014 necesitamos compilar desde fuente durante el build del container. No imposible, pero s\u00ed una hora de debugging de Dockerfile que no estaba en los planes. Si dependes de paquetes con native addons en arm64, verifica antes de asumir que va a funcionar.<\/p>\n<h2>Cuatro Semanas de Migraci\u00f3n: <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/langchain-vs-llamaindex-vs-haystack-building-produ\/\" title=\"Lo que\">Lo Que<\/a> Romp\u00ed y <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/langchain-vs-llamaindex-vs-haystack-building-produ\/\" title=\"Lo que\">Lo Que<\/a> Mejor\u00e9<\/h2>\n<p>La migraci\u00f3n la hice en fases. Desarrollo primero, staging despu\u00e9s, producci\u00f3n al final.<\/p>\n<p>El entorno de desarrollo fue sorprendentemente r\u00e1pido \u2014 dos horas para cambiar los scripts de <code>package.json<\/code>, actualizar el Dockerfile, y verificar que todo arrancaba. Demasiado f\u00e1cil. Esa facilidad me dio mala espina.<\/p>\n<p>Staging revel\u00f3 los problemas de crypto que ya mencion\u00e9. Tambi\u00e9n revel\u00f3 algo que no esperaba para nada: la migraci\u00f3n a <code>bun test<\/code>.<\/p>\n<p>Ten\u00edamos nuestros ~180 tests de integraci\u00f3n en Jest. Migrar a <code>bun test<\/code> tom\u00f3 aproximadamente cuatro horas \u2014 la mayor\u00eda gastada en diferencias <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/05\/claude-vs-gpt-4o-vs-gemini-20-qu-modelo-de-ia-usar\/\" title=\"en el\">en el<\/a> sistema de mocks. <code>jest.spyOn<\/code> tiene equivalente, pero la sintaxis de <code>mockRestore<\/code> y el comportamiento de mocks autom\u00e1ticos entre m\u00f3dulos es ligeramente distinta. Hay que reescribir algunos tests, no muchos, pero algunos.<\/p>\n<p>Una vez migrado: los tests corr\u00edan en <strong>11 segundos<\/strong> en lugar de <strong>34 segundos<\/strong>. Once segundos para 180 tests de integraci\u00f3n, incluyendo conexiones reales a <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/postgresql-performance-tuning-what-i-learned-optim\/\" title=\"una <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/postgresql-performance-tuning-what-i-learned-optim\/\" title=\"Base de Datos\">Base de Datos<\/a> de&#8221;>una <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/postgresql-performance-tuning-what-i-learned-optim\/\" title=\"Base de Datos\">base de datos<\/a> de<\/a> test. Ese n\u00famero cambi\u00f3 la din\u00e1mica del equipo m\u00e1s que cualquier mejora de throughput <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/typescript-5x-in-2026-features-that-actually-matte\/\" title=\"en Producci\u00f3n\">en producci\u00f3n<\/a>. El ciclo de feedback m\u00e1s corto en desarrollo es el beneficio m\u00e1s tangible del d\u00eda a d\u00eda \u2014 y no <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/08\/benchmarks-de-asistentes-de-cdigo-ia-pruebas-de-re\/\" title=\"es lo que\">es lo que<\/a> estaba midiendo cuando empec\u00e9 este experimento.<\/p>\n<p>Esto <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/08\/benchmarks-de-asistentes-de-cdigo-ia-pruebas-de-re\/\" title=\"es lo que\">es lo que<\/a> genuinamente no anticip\u00e9.<\/p>\n<p>Bueno, <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/cloudflare-workers-vs-aws-lambda-which-edge-runtim\/\" title=\"despu\u00e9s de\">despu\u00e9s de<\/a> staging lleg\u00f3 el momento del deployment de producci\u00f3n. Lo empuj\u00e9 <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/kubernetes-vs-docker-swarm-vs-nomad-container-orch\/\" title=\"un Viernes\">un viernes<\/a> por la tarde. S\u00ed. Ya s\u00e9. T\u00e9cnicamente staging hab\u00eda corrido limpio durante cinco d\u00edas completos, as\u00ed que me convenc\u00ed de que era razonable. <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/setting-up-github-actions-for-python-applications\/\" title=\"a las\">A las<\/a> 7pm, <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/cloudflare-workers-vs-aws-lambda-which-edge-runtim\/\" title=\"despu\u00e9s de\">despu\u00e9s de<\/a> enrutar el 10% del tr\u00e1fico a los nuevos containers, empezamos a ver errores 502 espor\u00e1dicos en los logs de ECS.<\/p>\n<p>El culpable tard\u00f3 40 minutos en aparecer: el <code>healthCheckGracePeriodSeconds<\/code> de nuestra tarea en ECS era de 15 segundos. Bun arranca r\u00e1pido, s\u00ed, pero la inicializaci\u00f3n de nuestro pool de conexiones de PostgreSQL ten\u00eda un orden de operaciones ligeramente diferente al de Node, y en cold starts el primer health check de ECS llegaba antes de que el pool estuviera completamente listo para aceptar queries. El container respond\u00eda al health check con un 200, pero el primer request real que llegaba durante la inicializaci\u00f3n del pool fallaba.<\/p>\n<p>Fix: <code>healthCheckGracePeriodSeconds<\/code> de 15 a 30 segundos. Diez minutos de cambio, dos horas de susto. <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/09\/setting-up-github-actions-for-python-applications\/\" title=\"a las\">A las<\/a> 9:30pm est\u00e1bamos al 100% del tr\u00e1fico. No dorm\u00ed especialmente bien esa noche.<\/p>\n<h2>Mi Veredicto: Cu\u00e1ndo Migrar y Cu\u00e1ndo No Molestarse<\/h2>\n<p>Directo al grano.<\/p>\n<p>Migra a Bun si tienes una API REST donde el throughput y la latencia importan, tus dependencias son mayoritariamente paquetes JavaScript puros (o has verificado que los native addons funcionan en tu arquitectura espec\u00edfica), y especialmente si tu equipo corre muchos tests \u2014 el test runner solo ya puede justificar el esfuerzo. Los cold starts tambi\u00e9n mejoran significativamente, lo que importa en entornos con escala din\u00e1mica.<\/p>\n<p>Qu\u00e9date en Node si dependes de native addons que no has verificado en Bun, si tu stack incluye herramientas de build muy espec\u00edficas que no has probado, o si simplemente no tienes el tiempo para investigar esos bugs de compatibilidad del 5% que inevitablemente aparecen. Tambi\u00e9n qu\u00e9date en Node si tu equipo no tiene capacidad de absorber el costo de una migraci\u00f3n de tests \u2014 no es enorme, pero no es cero.<\/p>\n<p>Mi recomendaci\u00f3n concreta, la m\u00e1s pr\u00e1ctica que puedo dar: <strong>empieza por migrar solo los tests a <code>bun test<\/code><\/strong>. Sin cambiar el runtime de producci\u00f3n, sin tocar nada m\u00e1s. Si la migraci\u00f3n de tests fluye sin demasiados problemas y el tiempo de ejecuci\u00f3n mejora, tienes una se\u00f1al clara de que tu codebase es compatible. Si la migraci\u00f3n de tests es una pesadilla, el runtime de producci\u00f3n probablemente tambi\u00e9n lo ser\u00e1.<\/p>\n<p>Bun <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/05\/claude-vs-gpt-4o-vs-gemini-20-qu-modelo-de-ia-usar\/\" title=\"en 2026\">en 2026<\/a> est\u00e1 suficientemente maduro <a href=\"https:\/\/blog.rebalai.com\/es\/2026\/03\/04\/rag-vector-database-production\/\" title=\"para Producci\u00f3n\">para producci\u00f3n<\/a> en la mayor\u00eda de los proyectos web. No en todos. La diferencia entre &#8220;la mayor\u00eda&#8221; y &#8220;todos&#8221; sigue siendo los native addons en arquitecturas no-x86_64 y algunos edge cases en APIs de Node.js poco usadas. Verifica tu caso espec\u00edfico \u2014 no asumas que lo que funcion\u00f3 para m\u00ed funcionar\u00e1 para ti.<\/p>\n<p>Nosotros no hemos vuelto a Node. Pero si hubiera tenido tres o cuatro dependencias pesadas de native addons en arm64, esta historia probablemente terminar\u00eda diferente.<\/p>\n<p><!-- Reviewed: 2026-03-09 | Status: ready_to_publish | Changes: expanded meta_description to ~153 chars; replaced jarring \"Right, so \u2014\" English code-switch with natural Spanish transition; softened memory RAM claim wording; minor tightening in verdict opener --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prob\u00e9 Bun 1.0 en octubre de 2023. Dur\u00e9 aproximadamente tres semanas antes de volver a Node.js con la cola entre las patas.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-501","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/posts\/501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/comments?post=501"}],"version-history":[{"count":11,"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/posts\/501\/revisions"}],"predecessor-version":[{"id":768,"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/posts\/501\/revisions\/768"}],"wp:attachment":[{"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/media?parent=501"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/categories?post=501"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rebalai.com\/es\/wp-json\/wp\/v2\/tags?post=501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}