{"id":5613,"date":"2020-03-09T15:35:24","date_gmt":"2020-03-09T08:35:24","guid":{"rendered":"https:\/\/blog.nolimit.id\/\/?p=5613"},"modified":"2023-06-19T22:10:54","modified_gmt":"2023-06-19T15:10:54","slug":"mengenal-akka-stream-data-streaming-library-untuk-jvm","status":"publish","type":"post","link":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/","title":{"rendered":"Mengenal Akka Stream, Data Streaming Library untuk JVM"},"content":{"rendered":"\n<p>Akka stream adalah library untuk streaming\nprocessing yang dibangun di atas&nbsp;<a href=\"http:\/\/akka.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Akka<\/a>,\nmemungkinkan developer menghandle data secara streaming, dengan resiko\nout-of-memory sekecil mungkin menggunakan mekanisme backpressure. Akka Stream\njuga menawarkan API yang beragam, memungkinkan developer melakukan transformasi\nelemen, melakukan operasi yang bergantung dengan waktu, dan lain-lain namun\ntetap type-safe. Akka Stream sebagai salah satu alternatif streaming processing\nlibrary di Scala, maupun di JVM.<\/p>\n\n\n\n<p>Nah, Akka Stream memiliki 3 konsep API\nutama, diantaranya adalah :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Source <\/li><\/ul>\n\n\n\n<p><strong>Entry Point pemrosesan data di Akka Stream<\/strong> \u2013 kita dapat membuat turunan suatu kelas ini dari berbagai sumber; misalnya, kita dapat menggunakan single method () jika kita ingin membuat Sumber dari String tunggal, atau kita dapat membuat Sumber dari elemen Iterable.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Flow <\/li><\/ul>\n\n\n\n<p><strong>Blok pemrosesan utama<\/strong> \u2013 setiap &nbsp;instance Flow memiliki\nsatu input dari Source dan satu nilai output untuk dialirkan ke Sink. Pada\ntahap ini bisa dilakukan &nbsp;beberapa\npemrosesan data misalnya parsing atau cleansing.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sink <\/li><\/ul>\n\n\n\n<p><strong>Tujuan akhir elemen data\nsetelah diproses<\/strong> \u2013 Sink menghasilkan output dari keseluruhan\nproses yang sudah berjalan pada dari tahap Source ke Flow.<\/p>\n\n\n\n<p>Rangkaian Source, Flow dan Sink dapat diibaratkan seperti pipa yang akan mengalirkan data. Untuk mengakses suatu resource data, rangkaian ini memerlukan RunnableGraph[M] dengan memanggil metode&nbsp;.run()&nbsp;pada RunnableGraph data mulai mengalir dan diproses.<\/p>\n\n\n\n<p>Baca Juga: <a href=\"https:\/\/blog.nolimit.id\/\/2020\/01\/28\/pengenalan-scala-untuk-big-data\/\">Berkenalan Dengan Scala Untuk Big Data <\/a><\/p>\n\n\n\n<p><strong>Lalu Bagaimana contoh penggunaan\nrangkaian ini ?<\/strong><\/p>\n\n\n\n<p>Di bawah ini\nadalah contoh RunnableGraph yang menerima input list integer 0 sampai 10,\nmenambahkan tiap angka dengan 5, dan menjumlahkan semua angka tersebut sebagai\nhasil akhir.<\/p>\n\n\n\n<p>\u201c <strong>Source(0 to 10).map(_ + 5).to(Sink.fold(0)(_ +\n_)).run()<\/strong> \u201c<\/p>\n\n\n\n<p>Dalam\nterminologi Akka Stream, proses pengaktifan rangkaian ini disebut sebagai\nstream materialization. Proses materialisasi ini akan menyebabkan operator-operator\ndi dalam RunnableGraph bekerja untuk setiap elemen yang lewat dan ketika\noperasi eksekusi elemen-elemen yang lewat teresebut sukses, sebuah nilai akhir\nyang type nya sama dengan type parameter RunnableGraph terkait dihasilkan jika\nstream sukses, atau exception jika stream mengalami kegagalan.<br><\/p>\n\n\n\n<p><strong>Bagaimana mekanisme Error Handling di\nAkka Stream ?<\/strong><\/p>\n\n\n\n<p>Akka Stream membagi 2\nsemantik&nbsp;kesalahan&nbsp;yang mungkin muncul selama keberlangsungan\nproses:&nbsp;error&nbsp;dan&nbsp;failure. Contoh failure adalah habisnya sumber\ndaya mesin, rusaknya hardware, dan lain-lain. Untuk error, salah satu contohnya\nadalah kesalahan input, ketiadaan file dengan nama tertentu, dan lain-lain.\nKejadian munculnya failure bisa jadi mengurangi sebagian atau keseluruan\nkapabilitas layanan, akan tetapi kemunculan error tidak boleh mengurangi\nkemampuan layanan.<\/p>\n\n\n\n<p>Berdasarkan hal ini, Akka Stream memberikan\nperlakukan yang berbeda antara error dan failure. Error dianggap sebagai\nlayaknya elemen biasa pada stream, sedangkan failure akan menyebabkan stream berhenti\ndan dihancurkan oleh materializer tanpa menghasilkan nilai materialisasi.\nBerhentinya stream karena failure merupakan hal yang tidak diinginkan, oleh\nkarena itu Akka Stream memiliki seperangkat API yang memungkinkan developer\nmengubah failure pada salah satu atau beberapa stage di stream menjadi elemen\nbiasa atau mengabaikan failure tersebut agak stream tetap berjalan normal.<\/p>\n\n\n\n<p><strong>Lalu, seperti apa karakteristik Akka\nStream ?<\/strong><\/p>\n\n\n\n<p><strong>Back-pressure<\/strong><\/p>\n\n\n\n<p>Mekanisme kontrol aliran elemen pada stream\nyang memungkinkan sisi hulu memperlambat laju produksi elemen ketika sisi hilir\nmengalami perlambatan dalam mengonsumsi elemen yang datang. Keberadaan\nmekanisme back-pressure ini yang memungkinkan Akka Stream ramah memori walaupun\ndengan cara mengorbankan througput sistem.<\/p>\n\n\n\n<p><strong>Non-blocking<\/strong><\/p>\n\n\n\n<p>Operator pada stream tidak menghalangi\nkeberjalanan thread pemanggil.<\/p>\n\n\n\n<p><strong>Composable<\/strong><\/p>\n\n\n\n<p>Di bagian awal sempat disebutkan bahwa\nmenyusun RunnableGraph bisa dianggap seperti menyusun pipa air. Ini dapat\nditerjemahkan bahwa Source, Sink, maupun Flow dapat disusun untuk membuat\nSource, Sink, dan Flow baru.<\/p>\n\n\n\n<p>Referensi :<\/p>\n\n\n\n<p><a href=\"https:\/\/doc.akka.io\/docs\/akka\/current\/stream\/index.html\">https:\/\/doc.akka.io\/docs\/akka\/current\/stream\/index.html<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.lightbend.com\/blog\/use-akka-streams-dynamically-controlled-streams\">https:\/\/www.lightbend.com\/blog\/use-akka-streams-dynamically-controlled-streams<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.baeldung.com\/akka-streams\"> https:\/\/www.baeldung.com\/akka-streams <\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/pujanggateknologi\/berkenalan-dengan-akka-stream-820ed1a1ecfc\">https:\/\/medium.com\/pujanggateknologi\/berkenalan-dengan-akka-stream-820ed1a1ecfc<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Akka stream adalah library untuk streaming processing yang dibangun di atas&nbsp;Akka, memungkinkan developer menghandle data secara streaming, dengan resiko out-of-memory sekecil mungkin menggunakan mekanisme backpressure. Akka Stream juga menawarkan API yang beragam, memungkinkan developer melakukan transformasi elemen, melakukan operasi yang bergantung dengan waktu, dan lain-lain namun tetap type-safe. Akka Stream sebagai salah satu alternatif streaming [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5617,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2330],"tags":[2845],"class_list":["post-5613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nolimit-space","tag-apa-itu-akka-stream"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mengenal Akka Stream, Data Streaming Library untuk JVM - NoLimit Knowledge Center<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mengenal Akka Stream, Data Streaming Library untuk JVM - NoLimit Knowledge Center\" \/>\n<meta property=\"og:description\" content=\"Akka stream adalah library untuk streaming processing yang dibangun di atas&nbsp;Akka, memungkinkan developer menghandle data secara streaming, dengan resiko out-of-memory sekecil mungkin menggunakan mekanisme backpressure. Akka Stream juga menawarkan API yang beragam, memungkinkan developer melakukan transformasi elemen, melakukan operasi yang bergantung dengan waktu, dan lain-lain namun tetap type-safe. Akka Stream sebagai salah satu alternatif streaming [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/\" \/>\n<meta property=\"og:site_name\" content=\"NoLimit Knowledge Center\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/NoLimitID\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-09T08:35:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-19T15:10:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2020\/03\/Cover-Blog-Mar3.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gerry Ardian\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nolimitid\" \/>\n<meta name=\"twitter:site\" content=\"@nolimitid\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gerry Ardian\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/\"},\"author\":{\"name\":\"Gerry Ardian\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#\\\/schema\\\/person\\\/c6219b9b5bc4f795ce5bf0dace0f2c63\"},\"headline\":\"Mengenal Akka Stream, Data Streaming Library untuk JVM\",\"datePublished\":\"2020-03-09T08:35:24+00:00\",\"dateModified\":\"2023-06-19T15:10:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/\"},\"wordCount\":583,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Cover-Blog-Mar3.jpg\",\"keywords\":[\"apa itu Akka Stream\"],\"articleSection\":[\"NoLimit Space\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/\",\"url\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/\",\"name\":\"Mengenal Akka Stream, Data Streaming Library untuk JVM - NoLimit Knowledge Center\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Cover-Blog-Mar3.jpg\",\"datePublished\":\"2020-03-09T08:35:24+00:00\",\"dateModified\":\"2023-06-19T15:10:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Cover-Blog-Mar3.jpg\",\"contentUrl\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Cover-Blog-Mar3.jpg\",\"width\":800,\"height\":450,\"caption\":\"Mengenal Akka Stream, Data Streaming Library untuk JVM\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/mengenal-akka-stream-data-streaming-library-untuk-jvm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mengenal Akka Stream, Data Streaming Library untuk JVM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/\",\"name\":\"NoLimit Knowledge Center\",\"description\":\"Social Media for Everyone\",\"publisher\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#organization\",\"name\":\"NoLimit Indonesia\",\"url\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/07\\\/Image.jpg\",\"contentUrl\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/07\\\/Image.jpg\",\"width\":385,\"height\":385,\"caption\":\"NoLimit Indonesia\"},\"image\":{\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/NoLimitID\\\/\",\"https:\\\/\\\/x.com\\\/nolimitid\",\"https:\\\/\\\/www.instagram.com\\\/nolimitid\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company-beta\\\/2388818\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nolimit.id\\\/blog\\\/#\\\/schema\\\/person\\\/c6219b9b5bc4f795ce5bf0dace0f2c63\",\"name\":\"Gerry Ardian\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d0135fe89c668cbc49805b30ff5ed37ff762cbced963655f643e25914c97067?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d0135fe89c668cbc49805b30ff5ed37ff762cbced963655f643e25914c97067?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d0135fe89c668cbc49805b30ff5ed37ff762cbced963655f643e25914c97067?s=96&d=mm&r=g\",\"caption\":\"Gerry Ardian\"},\"url\":\"#\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mengenal Akka Stream, Data Streaming Library untuk JVM - NoLimit Knowledge Center","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:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/","og_locale":"en_US","og_type":"article","og_title":"Mengenal Akka Stream, Data Streaming Library untuk JVM - NoLimit Knowledge Center","og_description":"Akka stream adalah library untuk streaming processing yang dibangun di atas&nbsp;Akka, memungkinkan developer menghandle data secara streaming, dengan resiko out-of-memory sekecil mungkin menggunakan mekanisme backpressure. Akka Stream juga menawarkan API yang beragam, memungkinkan developer melakukan transformasi elemen, melakukan operasi yang bergantung dengan waktu, dan lain-lain namun tetap type-safe. Akka Stream sebagai salah satu alternatif streaming [&hellip;]","og_url":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/","og_site_name":"NoLimit Knowledge Center","article_publisher":"https:\/\/www.facebook.com\/NoLimitID\/","article_published_time":"2020-03-09T08:35:24+00:00","article_modified_time":"2023-06-19T15:10:54+00:00","og_image":[{"width":800,"height":450,"url":"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2020\/03\/Cover-Blog-Mar3.jpg","type":"image\/jpeg"}],"author":"Gerry Ardian","twitter_card":"summary_large_image","twitter_creator":"@nolimitid","twitter_site":"@nolimitid","twitter_misc":{"Written by":"Gerry Ardian","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#article","isPartOf":{"@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/"},"author":{"name":"Gerry Ardian","@id":"https:\/\/nolimit.id\/blog\/#\/schema\/person\/c6219b9b5bc4f795ce5bf0dace0f2c63"},"headline":"Mengenal Akka Stream, Data Streaming Library untuk JVM","datePublished":"2020-03-09T08:35:24+00:00","dateModified":"2023-06-19T15:10:54+00:00","mainEntityOfPage":{"@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/"},"wordCount":583,"commentCount":0,"publisher":{"@id":"https:\/\/nolimit.id\/blog\/#organization"},"image":{"@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#primaryimage"},"thumbnailUrl":"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2020\/03\/Cover-Blog-Mar3.jpg","keywords":["apa itu Akka Stream"],"articleSection":["NoLimit Space"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/","url":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/","name":"Mengenal Akka Stream, Data Streaming Library untuk JVM - NoLimit Knowledge Center","isPartOf":{"@id":"https:\/\/nolimit.id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#primaryimage"},"image":{"@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#primaryimage"},"thumbnailUrl":"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2020\/03\/Cover-Blog-Mar3.jpg","datePublished":"2020-03-09T08:35:24+00:00","dateModified":"2023-06-19T15:10:54+00:00","breadcrumb":{"@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#primaryimage","url":"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2020\/03\/Cover-Blog-Mar3.jpg","contentUrl":"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2020\/03\/Cover-Blog-Mar3.jpg","width":800,"height":450,"caption":"Mengenal Akka Stream, Data Streaming Library untuk JVM"},{"@type":"BreadcrumbList","@id":"https:\/\/nolimit.id\/blog\/mengenal-akka-stream-data-streaming-library-untuk-jvm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nolimit.id\/blog\/"},{"@type":"ListItem","position":2,"name":"Mengenal Akka Stream, Data Streaming Library untuk JVM"}]},{"@type":"WebSite","@id":"https:\/\/nolimit.id\/blog\/#website","url":"https:\/\/nolimit.id\/blog\/","name":"NoLimit Knowledge Center","description":"Social Media for Everyone","publisher":{"@id":"https:\/\/nolimit.id\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nolimit.id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nolimit.id\/blog\/#organization","name":"NoLimit Indonesia","url":"https:\/\/nolimit.id\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nolimit.id\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2017\/07\/Image.jpg","contentUrl":"https:\/\/nolimit.id\/blog\/wp-content\/uploads\/2017\/07\/Image.jpg","width":385,"height":385,"caption":"NoLimit Indonesia"},"image":{"@id":"https:\/\/nolimit.id\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/NoLimitID\/","https:\/\/x.com\/nolimitid","https:\/\/www.instagram.com\/nolimitid\/","https:\/\/www.linkedin.com\/company-beta\/2388818\/"]},{"@type":"Person","@id":"https:\/\/nolimit.id\/blog\/#\/schema\/person\/c6219b9b5bc4f795ce5bf0dace0f2c63","name":"Gerry Ardian","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7d0135fe89c668cbc49805b30ff5ed37ff762cbced963655f643e25914c97067?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7d0135fe89c668cbc49805b30ff5ed37ff762cbced963655f643e25914c97067?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d0135fe89c668cbc49805b30ff5ed37ff762cbced963655f643e25914c97067?s=96&d=mm&r=g","caption":"Gerry Ardian"},"url":"#"}]}},"_links":{"self":[{"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/posts\/5613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/comments?post=5613"}],"version-history":[{"count":0,"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/posts\/5613\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/media\/5617"}],"wp:attachment":[{"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/media?parent=5613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/categories?post=5613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nolimit.id\/blog\/wp-json\/wp\/v2\/tags?post=5613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}