{"id":92837,"date":"2019-09-23T09:00:02","date_gmt":"2019-09-23T07:00:02","guid":{"rendered":"https:\/\/www.emagister.com\/blog\/?p=92837"},"modified":"2019-10-07T11:00:19","modified_gmt":"2019-10-07T09:00:19","slug":"arquitecturas-hibridas-lambda-kappa","status":"publish","type":"post","link":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/","title":{"rendered":"Arquitecturas h\u00edbridas: Lambda y Kappa"},"content":{"rendered":"<p>Una vez que hemos resuelto los retos, vamos a analizar dos tipos de arquitecturas para procesamiento en tiempo real. Es importante mencionar que se construyen, generalmente, con componentes distribuidos desarrollados sobre la <em>JVM\u00a0<\/em>y, por tanto, son <em>soft real time systems<\/em>. La principal diferencia entre ambas son los flujos de tratamiento de datos que intervienen y el paradigma de programaci\u00f3n predominante. En su concepci\u00f3n juega un papel muy importante la madurez de las tecnolog\u00edas existentes en cada momento.<!--more--><\/p>\n<h3>Arquitectura <em>Lambda<\/em><\/h3>\n<p>En su art\u00edculo\u00a0\u201c<em>How to beat the CAP theorem<\/em><em>\u201d<\/em> (2011) [1], <em>Nathan Marz\u00a0<\/em>presenta la Arquitectura <em>Lambda<\/em>. Una arquitectura capaz de obtener resultados en tiempo real en sistemas con ingesta continua de datos y tolerante a fallos, tanto humanos como de <em>hardware<\/em>. Adem\u00e1s, pretende prevenir la complejidad que produce el teorema del\u00a0<em>CAP<\/em> en los Sistemas Distribuidos y, con esta prevenci\u00f3n, \u201cvencerlo\u201d. Para <em>Nathan<\/em>, un sistema de datos se define de forma muy sencilla:<\/p>\n<p style=\"text-align: center;\"><em>Consulta= Funci\u00f3n (todos los datos)<\/em><\/p>\n<p>El resultado de esta consulta es la combinaci\u00f3n de los datos procesados por los paradigmas <em>streaming<\/em> y <em>batch<\/em>. Aunque existen sistemas para realizar este tipo de consultas contra <em>PetaBytes<\/em> de datos, son excesivamente costosos en recursos y no son el enfoque m\u00e1s eficaz. Para resolverlas de una forma m\u00e1s eficiente introduce la idea de calcular previamente los resultados con un conjunto de vistas y consultar estas vistas. La arquitectura est\u00e1 dividida en tres partes: <em>batch layer<\/em> (capa de\u00a0<em>batch processing<\/em>),\u00a0<em>serving layer<\/em> (capa de consulta) y\u00a0<em>speed layer\u00a0<\/em>(capa de <em>stream processing<\/em>). El funcionamiento es el siguiente:<\/p>\n<figure id=\"attachment_92838\" aria-describedby=\"caption-attachment-92838\" style=\"width: 290px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-92838 size-full\" src=\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image001-e1568982829327.png\" alt=\"\" width=\"300\" height=\"171\" srcset=\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image001-e1568982829327.png 300w, https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image001-e1568982829327-80x46.png 80w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-92838\" class=\"wp-caption-text\">Arquitectura Lambda (tomado de: lambda-architecture.net)<\/figcaption><\/figure>\n<ol>\n<li>Los nuevos datos ingestados por el sistema se env\u00edan tanto a la <em>batch layer<\/em> como a la <em>speed layer\u00a0<\/em>para su procesamiento. Para este cometido suele usarse <em>Kafka<\/em>.<\/li>\n<li><em>Batch layer<\/em>. Gestiona el conjunto de datos maestros en bruto y a\u00f1ade los nuevos datos a los ya existentes, que no se modifican. Mantiene, por tanto, una copia inmutable y creciente de todos los datos ingestados por el sistema. Al conjunto total de datos del sistema les aplica procesamiento <em>batch<\/em> en un proceso que puede llevar horas. El resultado son las <em>batch views<\/em>, que se usar\u00e1n en la <em>serving layer<\/em> para ofrecer la informaci\u00f3n ya transformada al exterior. Estas vistas precalculadas se actualizan con cada iteraci\u00f3n del procesamiento <em>batch<\/em>. La informaci\u00f3n suele almacenarse en <em>HDFS<\/em> y procesarse con <em>Hadoop<\/em>\/<em>Spark<\/em>.<\/li>\n<li><em>Serving layer<\/em>. Su misi\u00f3n es indexar las <em>batch views\u00a0<\/em>(est\u00e1ticas) y exponerlas de forma que puedan ser consultadas de forma \u00f3ptima y en tiempo real. En esta capa suele haber una base de datos distribuida que responda a unas necesidades de escrituras c\u00edclicas y de lecturas aleatorias. Aparecen bases de datos como\u00a0<em>HBase<\/em> y <em>Cassandra<\/em>.<\/li>\n<li><em>Speed Layer<\/em>. La <em>batch layer<\/em> no soluciona totalmente las necesidades de procesamiento. La latencia que generan las <em>batch views<\/em> hace que en el momento en el que finaliza su ejecuci\u00f3n, el sistema ya tiene nuevos datos que no est\u00e1n representados en los resultados de la <em>serving layer<\/em> y, por tanto, las respuestas del sistema ante las consultas est\u00e1n desactualizadas. El an\u00e1lisis de la informaci\u00f3n que no est\u00e1 representada todav\u00eda en la <em>serving layer\u00a0<\/em>es la misi\u00f3n de la <em>speed layer<\/em>. Para conseguir tiempos de respuesta instant\u00e1neos aplica algoritmos r\u00e1pidos e incrementales a los datos recientes. Los resultados de estos c\u00e1lculos, <em>stream views<\/em>, se actualizan en tiempo real a medida que se reciben nuevos datos. Una vez que los datos han sido procesados por la <em>batch layer<\/em>, y por tanto los resultados est\u00e1n disponibles en la <em>serving layer<\/em>, esa parte de la informaci\u00f3n de la <em>stream view<\/em> ya no es necesaria y se puede eliminar. Esta caracter\u00edstica dota a la arquitectura de tolerancia a fallos funcionales de la <em>speed layer<\/em> (la m\u00e1s compleja), descartando el estado de la <em>stream view<\/em> y procesando todos los datos en la <em>batch layer<\/em>. Suelen aparecer tecnolog\u00edas como <em>Storm<\/em>, <em>Spark Streaming<\/em>, <em>Flink<\/em>, <em>Redis<\/em> y <em>Cassandra<\/em>.<\/li>\n<li>Finalmente, la respuesta a las consultas realizadas al sistema se construye combinando los resultados de las <em>batch views<\/em> y de las <em>stream views<\/em>. Esta combinaci\u00f3n es espec\u00edfica de cada sistema que implementa la arquitectura. Por ejemplo, se pueden almacenar las vistas en dos bases de datos: una optimizada para el tiempo real y otra optimizada para las actualizaciones <em>batch<\/em>. Ambas compartir\u00edan un registro \u00fanico de la informaci\u00f3n (y meta informaci\u00f3n) que gestionar\u00eda las respuestas del sistema a las consultas. La l\u00f3gica para combinar los datos de ambas vistas depende de las operaciones que implican las funciones a calcular para obtener las respuestas. Si las operaciones cumplen la propiedad asociativa (c\u00e1lculos como la suma, el m\u00e1ximo, filtros o agrupaciones), la capa de combinaci\u00f3n se limita a ejecutar las funciones sobre los datos agregados. Si las funciones requieren operaciones m\u00e1s complejas, debe utilizarse la meta informaci\u00f3n generada en los procesamientos anteriores.\n<p><figure id=\"attachment_92842\" aria-describedby=\"caption-attachment-92842\" style=\"width: 290px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-92842 size-full\" src=\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image002-e1568983047551.png\" alt=\"\" width=\"300\" height=\"90\" srcset=\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image002-e1568983047551.png 300w, https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image002-e1568983047551-80x24.png 80w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-92842\" class=\"wp-caption-text\">Actualizaci\u00f3n <em>serving layer<\/em> y <em>speed layer<\/em><\/figcaption><\/figure><\/li>\n<\/ol>\n<p>La Arquitectura <em>Lambda<\/em> incide en dos conceptos fundamentales en los sistemas de procesamiento intensivo de datos en tiempo real: la inmutabilidad de los datos hist\u00f3ricos y la capacidad de reprocesar los datos almacenados en el sistema. Es b\u00e1sico que el sistema siempre genere sus resultados a partir del dato en bruto y que tenga la capacidad de recomputar la informaci\u00f3n existente. La necesidad de reprocesar los datos puede ser motivada por una optimizaci\u00f3n del proceso, solucionar un fallo o simplemente porque cambien las consultas al sistema y se necesiten nuevos c\u00e1lculos. Como principal desventaja presenta el problema de administrar y monitorizar dos sistemas distribuidos complejos: <em>batch<\/em> y <em>streaming<\/em>. Obliga a mantener la l\u00f3gica de la aplicaci\u00f3n en dos paradigmas de programaci\u00f3n diferentes y divergentes.<\/p>\n<h3>Arquitectura <em>Kappa<\/em><\/h3>\n<p>El t\u00e9rmino Arquitectura <em>Kappa<\/em> fue introducido en 2014 por <em>Jay Kreps<\/em> en su art\u00edculo \u201c<em>Questioning the Lambda Architecture<\/em>\u201d [2]. En este art\u00edculo, <em>Jay<\/em> comenta sus pensamientos sobre la Arquitectura <em>Lambda<\/em>, con sus pros y sus contras, y describe su experiencia implementando la arquitectura de procesamiento en tiempo real de <em>LinkedIn<\/em>. La visi\u00f3n de <em>Jay<\/em> parte de una premisa: el paradigma principal de procesamiento es el <em>streaming<\/em> y las operaciones <em>batch<\/em>, son un subconjunto de las operaciones de <em>streaming<\/em>. Recordemos que un flujo de datos en <em>stream<\/em> no tiene ni un comienzo ni un fin desde un punto de vista temporal\u00a0<em>(unbounded)<\/em>. Es necesario acotarlo para obtener un flujo <em>batch (bounded)<\/em>. Apoy\u00e1ndose en el paralelismo de los sistemas de procesamiento en <em>streaming<\/em>, propone una arquitectura en cuatro pasos:<\/p>\n<ol>\n<li><em>Kafka<\/em> o una aplicaci\u00f3n similar para la ingesta de datos y el almacenamiento de los datos susceptibles de ser reprocesados. Se pueden volcar los datos a <em>HDFS<\/em> (disco) si hay limitaciones de memoria.<\/li>\n<li>Un flujo de procesamiento en <em>streaming<\/em> cuyos resultados se almacenan en una tabla asociada. La aplicaci\u00f3n cliente realiza consultas a esta tabla. Si es necesario reprocesar los datos, se inicia un segundo flujo de procesamiento para obtener una nueva tabla con los datos recomputados.<\/li>\n<li>Cuando la nueva tabla est\u00e1 lista, la aplicaci\u00f3n empieza a leer de dicha tabla, que es alimentada por el segundo flujo de procesamiento.<\/li>\n<li>Se eliminan tanto el primer flujo de procesamiento como su tabla asociada.<\/li>\n<\/ol>\n<figure id=\"attachment_92845\" aria-describedby=\"caption-attachment-92845\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-92845 size-full\" src=\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image003.png\" alt=\"\" width=\"620\" height=\"179\" srcset=\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image003.png 620w, https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/image003-80x23.png 80w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><figcaption id=\"caption-attachment-92845\" class=\"wp-caption-text\">Arquitectura Kappa (tomado de: oreilly.com\/ideas\/questioning-the-lambda-architecture)<\/figcaption><\/figure>\n<p>Esta visi\u00f3n subsana los posibles puntos \u201cd\u00e9biles\u201d de la Arquitectura <em>Lambda<\/em> y la simplifica eliminando la capa <em>batch<\/em>. Podemos afirmar que sus tres pilares principales son los siguientes:<\/p>\n<ul>\n<li>Inmutabilidad de los datos. Se garantiza que los eventos se leen y almacenan en el orden en el que se han generado. La informaci\u00f3n de origen no se modifica, los datos son almacenados sin ser transformados.<\/li>\n<li>Solo existe un flujo de procesamiento, el de tiempo real. Este hecho produce que el c\u00f3digo de programaci\u00f3n,el mantenimiento y las actualizaciones del sistema se vean reducidos considerablemente. Sin embargo, los modelos necesarios para generar las vistas precomputadas son m\u00e1s complejos que los empleados en la <em>speed layer <\/em>de la Arquitectura <em>Lambda<\/em>, y su entrenamiento, mucho m\u00e1s costoso.<\/li>\n<li>Posibilidad de volver a lanzar un procesamiento. Un estado concreto puede ser recalculado <em>a posteriori<\/em> partiendo de una misma versi\u00f3n de los datos. Cuando se necesita recomputar la informaci\u00f3n por un cambio en la l\u00f3gica del negocio o en el c\u00f3digo de la aplicaci\u00f3n, se ejecuta la nueva funci\u00f3n sobre el motor de <em>stream processing<\/em> que lee la informaci\u00f3n almacenada en el sistema y crea una nueva tabla con los resultados.<\/li>\n<\/ul>\n<p>Conocidas ya las principales diferencias entre ambas arquitecturas es necesario un criterio que permita elegir entre una u otra. Si la l\u00f3gica de nuestro procesamiento en <em>batch<\/em> es distinta a la l\u00f3gica de nuestro procesamiento en <em>streaming<\/em>, optaremos por una Arquitectura <em>Lambda<\/em>, si la l\u00f3gica es similar, por una Arquitectura <em>Kappa<\/em>. Por cierto, para <em>Jay<\/em> el teorema del<em> CAP<\/em> se mantiene intacto al no ser \u201cvencido\u201d por la Arquitectura <em>Lambda<\/em>.<\/p>\n<p>Hemos repasado brevemente los fundamentos de las arquitecturas de datos y parte de la \u201coferta\u201d disponible en <em>open source<\/em>. A esta oferta habr\u00eda que sumar distribuciones privadas y el cat\u00e1logo de las grandes plataformas de <em>Cloud Computing\u00a0<\/em>(<em>Amazon<\/em>, <em>Google<\/em> y <em>Microsoft<\/em>). Ahora viene la parte m\u00e1s compleja, elegir la arquitectura de datos adecuada para nuestro negocio o problema. Al igual que coment\u00e1bamos con las bases de datos, no hay una arquitectura que sea buena para todos los casos (no <em>one-size-fits-all<\/em>). Debemos entender el problema, valorar los recursos con los que contamos y buscar el equilibrio entre todos los conceptos que ya conocemos.<\/p>\n<blockquote><p><em>\u00abLo que nos distingue a los humanos es nuestra capacidad de crear herramientas para amplificar nuestras capacidades\u00bb<\/em><\/p>\n<p><em>Steve Jobs<\/em><\/p><\/blockquote>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>Bibliograf\u00eda<\/strong><\/p>\n<p><strong>\u00a0<\/strong>[1]: Marz, N. (2011). <em>How to beat the CAP theorem, <\/em>recuperado de:\u00a0<em>http:\/\/nathanmarz.com\/blog\/how-to-beat-the-cap-theorem.html<\/em><\/p>\n<p>[2]: Kreps, J. (2014). <em>Questioning the Lambda Architecture, <\/em>recuperado de:\u00a0<em>https:\/\/www.oreilly.com\/ideas\/questioning-the-lambda-architecture<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Fuente: Alejandro Rodr\u00edguez Garc\u00eda, alumno del M\u00e1ster en Big Data de\u00a0MBIT School<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una vez que hemos resuelto los retos, vamos a analizar dos tipos de arquitecturas para procesamiento en tiempo real. Es &#8230; <a title=\"Arquitecturas h\u00edbridas: Lambda y Kappa\" class=\"read-more\" href=\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\" aria-label=\"M\u00e1s en Arquitecturas h\u00edbridas: Lambda y Kappa\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":285,"featured_media":92846,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[785],"tags":[10287,10288,2832,3265,10141],"class_list":["post-92837","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nuestros-clientes","tag-10287","tag-mbit-school","tag-noticias-de-centros-de-formacion","tag-centros-de-formacion","tag-noticiaselpais","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-25"],"acf":{"mostrar_faldon":"-1","texto_faldon":"","link_faldon":"https:\/\/www.emagister.com\/mbit-school-cursos-125746-centrodetalles.htm","link_texto_faldon":"","hreflang":false,"estilo_titulo":"","fecha":"no"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.1 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Arquitecturas h\u00edbridas: Lambda y Kappa - Blog Emagister<\/title>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Arquitecturas h\u00edbridas: Lambda y Kappa\" \/>\n<meta property=\"og:description\" content=\"Una vez que hemos resuelto los retos, vamos a analizar dos tipos de arquitecturas para procesamiento en tiempo real. Es ... Leer m\u00e1s\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Emagister\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Emagister\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-23T07:00:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-10-07T09:00:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"788\" \/>\n\t<meta property=\"og:image:height\" content=\"443\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Blog Emagister\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@emagister\" \/>\n<meta name=\"twitter:site\" content=\"@emagister\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Blog Emagister\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\"},\"author\":{\"name\":\"Blog Emagister\",\"@id\":\"https:\/\/www.emagister.com\/blog\/#\/schema\/person\/776af158d79a20bccf84defca072a501\"},\"headline\":\"Arquitecturas h\u00edbridas: Lambda y Kappa\",\"datePublished\":\"2019-09-23T07:00:02+00:00\",\"dateModified\":\"2019-10-07T09:00:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\"},\"wordCount\":1713,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg\",\"keywords\":[\"99997192958079401036578245514826\",\"MBIT School\",\"Noticias de centros de formaci\u00f3n\",\"Centros de formaci\u00f3n\",\"noticiasElPais\"],\"articleSection\":[\"Nuestros clientes\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\",\"url\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\",\"name\":\"Arquitecturas h\u00edbridas: Lambda y Kappa - Blog Emagister\",\"isPartOf\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg\",\"datePublished\":\"2019-09-23T07:00:02+00:00\",\"dateModified\":\"2019-10-07T09:00:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage\",\"url\":\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg\",\"contentUrl\":\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg\",\"width\":788,\"height\":443,\"caption\":\"Social networking concept.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog Emagister\",\"item\":\"https:\/\/www.emagister.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nuestros clientes\",\"item\":\"https:\/\/www.emagister.com\/blog\/nuestros-clientes\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Arquitecturas h\u00edbridas: Lambda y Kappa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.emagister.com\/blog\/#website\",\"url\":\"https:\/\/www.emagister.com\/blog\/\",\"name\":\"Blog Emagister\",\"description\":\"Gu\u00eda de orientaci\u00f3n sobre estudios y tendencias de formaci\u00f3n\",\"publisher\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.emagister.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.emagister.com\/blog\/#organization\",\"name\":\"Emagister\",\"url\":\"https:\/\/www.emagister.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.emagister.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2017\/02\/photo.png\",\"contentUrl\":\"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2017\/02\/photo.png\",\"width\":120,\"height\":120,\"caption\":\"Emagister\"},\"image\":{\"@id\":\"https:\/\/www.emagister.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Emagister\/\",\"https:\/\/x.com\/emagister\",\"https:\/\/www.instagram.com\/emagister\/\",\"https:\/\/www.linkedin.com\/company\/emagister-com\/\",\"https:\/\/www.pinterest.es\/emagister\/\",\"https:\/\/www.youtube.com\/user\/emagister\/\",\"https:\/\/es.wikipedia.org\/wiki\/Emagister\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.emagister.com\/blog\/#\/schema\/person\/776af158d79a20bccf84defca072a501\",\"name\":\"Blog Emagister\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.emagister.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/44dc9fc526e06eb47a16c88f9b66a081ab656cfa8d8ad442778aa78886bdaff1?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/44dc9fc526e06eb47a16c88f9b66a081ab656cfa8d8ad442778aa78886bdaff1?s=96&r=g\",\"caption\":\"Blog Emagister\"},\"url\":\"https:\/\/www.emagister.com\/blog\/author\/blog-emagister\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Arquitecturas h\u00edbridas: Lambda y Kappa - Blog Emagister","robots":{"index":"index","follow":"follow"},"canonical":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/","og_locale":"es_ES","og_type":"article","og_title":"Arquitecturas h\u00edbridas: Lambda y Kappa","og_description":"Una vez que hemos resuelto los retos, vamos a analizar dos tipos de arquitecturas para procesamiento en tiempo real. Es ... Leer m\u00e1s","og_url":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/","og_site_name":"Blog Emagister","article_publisher":"https:\/\/www.facebook.com\/Emagister\/","article_published_time":"2019-09-23T07:00:02+00:00","article_modified_time":"2019-10-07T09:00:19+00:00","og_image":[{"width":788,"height":443,"url":"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg","type":"image\/jpeg"}],"author":"Blog Emagister","twitter_card":"summary_large_image","twitter_creator":"@emagister","twitter_site":"@emagister","twitter_misc":{"Escrito por":"Blog Emagister","Tiempo de lectura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#article","isPartOf":{"@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/"},"author":{"name":"Blog Emagister","@id":"https:\/\/www.emagister.com\/blog\/#\/schema\/person\/776af158d79a20bccf84defca072a501"},"headline":"Arquitecturas h\u00edbridas: Lambda y Kappa","datePublished":"2019-09-23T07:00:02+00:00","dateModified":"2019-10-07T09:00:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/"},"wordCount":1713,"commentCount":0,"publisher":{"@id":"https:\/\/www.emagister.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg","keywords":["99997192958079401036578245514826","MBIT School","Noticias de centros de formaci\u00f3n","Centros de formaci\u00f3n","noticiasElPais"],"articleSection":["Nuestros clientes"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/","url":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/","name":"Arquitecturas h\u00edbridas: Lambda y Kappa - Blog Emagister","isPartOf":{"@id":"https:\/\/www.emagister.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage"},"image":{"@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg","datePublished":"2019-09-23T07:00:02+00:00","dateModified":"2019-10-07T09:00:19+00:00","breadcrumb":{"@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#primaryimage","url":"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg","contentUrl":"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2019\/09\/GettyImages-1129515239.jpg","width":788,"height":443,"caption":"Social networking concept."},{"@type":"BreadcrumbList","@id":"https:\/\/www.emagister.com\/blog\/arquitecturas-hibridas-lambda-kappa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Emagister","item":"https:\/\/www.emagister.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nuestros clientes","item":"https:\/\/www.emagister.com\/blog\/nuestros-clientes\/"},{"@type":"ListItem","position":3,"name":"Arquitecturas h\u00edbridas: Lambda y Kappa"}]},{"@type":"WebSite","@id":"https:\/\/www.emagister.com\/blog\/#website","url":"https:\/\/www.emagister.com\/blog\/","name":"Blog Emagister","description":"Gu\u00eda de orientaci\u00f3n sobre estudios y tendencias de formaci\u00f3n","publisher":{"@id":"https:\/\/www.emagister.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.emagister.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.emagister.com\/blog\/#organization","name":"Emagister","url":"https:\/\/www.emagister.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.emagister.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2017\/02\/photo.png","contentUrl":"https:\/\/www.emagister.com\/blog\/wp-content\/uploads\/2017\/02\/photo.png","width":120,"height":120,"caption":"Emagister"},"image":{"@id":"https:\/\/www.emagister.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Emagister\/","https:\/\/x.com\/emagister","https:\/\/www.instagram.com\/emagister\/","https:\/\/www.linkedin.com\/company\/emagister-com\/","https:\/\/www.pinterest.es\/emagister\/","https:\/\/www.youtube.com\/user\/emagister\/","https:\/\/es.wikipedia.org\/wiki\/Emagister"]},{"@type":"Person","@id":"https:\/\/www.emagister.com\/blog\/#\/schema\/person\/776af158d79a20bccf84defca072a501","name":"Blog Emagister","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.emagister.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/44dc9fc526e06eb47a16c88f9b66a081ab656cfa8d8ad442778aa78886bdaff1?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/44dc9fc526e06eb47a16c88f9b66a081ab656cfa8d8ad442778aa78886bdaff1?s=96&r=g","caption":"Blog Emagister"},"url":"https:\/\/www.emagister.com\/blog\/author\/blog-emagister\/"}]}},"_links":{"self":[{"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/posts\/92837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/users\/285"}],"replies":[{"embeddable":true,"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/comments?post=92837"}],"version-history":[{"count":0,"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/posts\/92837\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/media\/92846"}],"wp:attachment":[{"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/media?parent=92837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/categories?post=92837"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emagister.com\/blog\/wp-json\/wp\/v2\/tags?post=92837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}