{"id":20985,"date":"2015-06-30T08:51:33","date_gmt":"2015-06-30T07:51:33","guid":{"rendered":"https:\/\/www.inovex.de\/\/?p=599"},"modified":"2015-06-30T08:51:33","modified_gmt":"2015-06-30T07:51:33","slug":"apache-flink-introduction","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/","title":{"rendered":"Comparing Apache Flink and Spark: Stream vs. Batch Processing"},"content":{"rendered":"<p>Flink has its origins in a research project called Stratosphere but was donated to the Apache Software Foundation in 2014. It can be described as a modern, more effective replacement of map reduce and has quite some similarities to Apache Spark. For example, the API resembles the Spark API and both adress similar use cases. Furthermore you will find a counterpart for almost every Spark component in Flink, e.g. for Machine Learning and Graph Processing. Read on for a quick comparison!<!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#Stream-Processing\" >Stream Processing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#Iterations\" >Iterations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#Memory-Management\" >Memory Management<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#Maturity\" >Maturity<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#Data-Flow\" >Data Flow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#Visualization\" >Visualization<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#Read-on\" >Read on<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Stream-Processing\"><\/span>Stream Processing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Under the hood, <a href=\"https:\/\/flink.apache.org\/\" target=\"_blank\" rel=\"noopener\">Flink<\/a> and <a href=\"https:\/\/spark.apache.org\/\" target=\"_blank\" rel=\"noopener\">Spark<\/a> are quite different. While Spark is a batch oriented system that operates on chunks of data, called RDDs, Apache Flink is a stream processing system able to process row after row in real time. Streaming with Spark on the other hand operates on micro-batches, making at least a minimal latency inevitable.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Iterations\"><\/span>Iterations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>By exploiting its streaming architecture, Flink allows you to natively iterate over data, something Spark also supports only as batches.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Memory-Management\"><\/span>Memory Management<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In our experience Spark jobs have to be optimized and adapted to specific datasets because you need to manually control partitioning and caching if you want to get it right.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Maturity\"><\/span>Maturity<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Flink is still in its infancy and has but a few production deployments. However, being tightly integrated into Hadoop and having a familiar looking API it is easy to evaluate Flink whenever fast iterative processing is a requirement.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Data-Flow\"><\/span>Data Flow<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In contrast to the procedural programming paradigm Flink follows a distributed data flow approach. For data set operations where intermediate results are required in addition to the regular input of an operation, broadcast variables are used to distribute the pre calculated results to all worker nodes. This is useful for auxiliary data sets or data-dependent parameterization. The data set will then be accessible for all parallel instances of an operation.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Visualization\"><\/span>Visualization<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Flink offers a web interface for submitting and executing jobs. The resulting execution plan can be visualized on this interface. Like Spark, Flink is integrated into <a href=\"https:\/\/zeppelin.incubator.apache.org\/\" target=\"_blank\" rel=\"noopener\">Apache Zeppelin<\/a>. It provides data analytics, ingestion, as well as discovery, visualization and collaboration. Zeppelin supports a multi language backend which allows to add and execute Flink programs. The results can easily be visualized.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Read-on\"><\/span>Read on<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>For more information on Big Data technology and case studies proving their success please <a href=\"https:\/\/www.inovex.de\/de\/leistungen\/analytics\/big-data-platforms\/\" target=\"_blank\" rel=\"noopener\">refer to our website<\/a>. For personal contact get in touch via <a href=\"mailto:list-blog@inovex.de\">email<\/a> or <a href=\"tel:+497216190210\">call +49 721 619 021-0<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flink has its origins in a research project called Stratosphere but was donated to the Apache Software Foundation in 2014. It can be described as a modern, more effective replacement of map reduce and has quite some similarities to Apache Spark. For example, the API resembles the Spark API and both adress similar use cases. [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":12106,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[77],"service":[],"coauthors":[],"class_list":["post-20985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-big-data"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comparing Apache Flink and Spark: Stream vs. Batch Processing - inovex GmbH<\/title>\n<meta name=\"description\" content=\"Read on for a quick comparison between Apache Flink and Spark, Stream versus Batch Processing.\" \/>\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.inovex.de\/de\/blog\/apache-flink-introduction\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comparing Apache Flink and Spark: Stream vs. Batch Processing - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"Read on for a quick comparison between Apache Flink and Spark, Stream versus Batch Processing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-30T07:51:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2300\" \/>\n\t<meta property=\"og:image:height\" content=\"678\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Hans-Peter Zorn\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2-1024x302.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hans-Peter Zorn\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/\"},\"author\":{\"name\":\"Hans-Peter Zorn\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/person\/2fc944b40bb8659e777fbcb3432b5de9\"},\"headline\":\"Comparing Apache Flink and Spark: Stream vs. Batch Processing\",\"datePublished\":\"2015-06-30T07:51:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/\"},\"wordCount\":405,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg\",\"keywords\":[\"Big Data\"],\"articleSection\":[\"Analytics\",\"English Content\",\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/\",\"url\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/\",\"name\":\"Comparing Apache Flink and Spark: Stream vs. Batch Processing - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg\",\"datePublished\":\"2015-06-30T07:51:33+00:00\",\"description\":\"Read on for a quick comparison between Apache Flink and Spark, Stream versus Batch Processing.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage\",\"url\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg\",\"contentUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg\",\"width\":2300,\"height\":678,\"caption\":\"flink vs. spark\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.inovex.de\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comparing Apache Flink and Spark: Stream vs. Batch Processing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.inovex.de\/de\/#website\",\"url\":\"https:\/\/www.inovex.de\/de\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.inovex.de\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.inovex.de\/de\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\/\/www.inovex.de\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/inovexde\",\"https:\/\/x.com\/inovexgmbh\",\"https:\/\/www.instagram.com\/inovexlife\/\",\"https:\/\/www.linkedin.com\/company\/inovex\",\"https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/person\/2fc944b40bb8659e777fbcb3432b5de9\",\"name\":\"Hans-Peter Zorn\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/person\/image\/72093bc7fd4fb18a1f92702b82e89ebb\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/17f161cfbf0a493ef71cd37ce238a096d75357a259002bb1ce806a53f2fc1104?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/17f161cfbf0a493ef71cd37ce238a096d75357a259002bb1ce806a53f2fc1104?s=96&d=retro&r=g\",\"caption\":\"Hans-Peter Zorn\"},\"url\":\"https:\/\/www.inovex.de\/de\/blog\/author\/hzorn-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comparing Apache Flink and Spark: Stream vs. Batch Processing - inovex GmbH","description":"Read on for a quick comparison between Apache Flink and Spark, Stream versus Batch Processing.","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.inovex.de\/de\/blog\/apache-flink-introduction\/","og_locale":"de_DE","og_type":"article","og_title":"Comparing Apache Flink and Spark: Stream vs. Batch Processing - inovex GmbH","og_description":"Read on for a quick comparison between Apache Flink and Spark, Stream versus Batch Processing.","og_url":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2015-06-30T07:51:33+00:00","og_image":[{"width":2300,"height":678,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg","type":"image\/jpeg"}],"author":"Hans-Peter Zorn","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2-1024x302.jpg","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Hans-Peter Zorn","Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/"},"author":{"name":"Hans-Peter Zorn","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/2fc944b40bb8659e777fbcb3432b5de9"},"headline":"Comparing Apache Flink and Spark: Stream vs. Batch Processing","datePublished":"2015-06-30T07:51:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/"},"wordCount":405,"commentCount":1,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg","keywords":["Big Data"],"articleSection":["Analytics","English Content","General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/","url":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/","name":"Comparing Apache Flink and Spark: Stream vs. Batch Processing - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg","datePublished":"2015-06-30T07:51:33+00:00","description":"Read on for a quick comparison between Apache Flink and Spark, Stream versus Batch Processing.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/06\/flink-vs-spark-2.jpg","width":2300,"height":678,"caption":"flink vs. spark"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/apache-flink-introduction\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Comparing Apache Flink and Spark: Stream vs. Batch Processing"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/2fc944b40bb8659e777fbcb3432b5de9","name":"Hans-Peter Zorn","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/image\/72093bc7fd4fb18a1f92702b82e89ebb","url":"https:\/\/secure.gravatar.com\/avatar\/17f161cfbf0a493ef71cd37ce238a096d75357a259002bb1ce806a53f2fc1104?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/17f161cfbf0a493ef71cd37ce238a096d75357a259002bb1ce806a53f2fc1104?s=96&d=retro&r=g","caption":"Hans-Peter Zorn"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/hzorn-2\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=20985"}],"version-history":[{"count":0,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20985\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/12106"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=20985"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=20985"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=20985"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=20985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}