{"id":10021,"date":"2022-01-11T15:34:46","date_gmt":"2022-01-11T14:34:46","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/"},"modified":"2022-09-19T13:10:43","modified_gmt":"2022-09-19T11:10:43","slug":"jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/","title":{"rendered":"JVM Tuesday vol. 71 &#8211; Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance"},"content":{"rendered":"\n<h2 id=\"1-project-valhalla-status-update\" data-num=1>1. Project Valhalla: Status Update&nbsp;\ud83e\ude93<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9486b86.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Ostatnimi czasy bardzo aktywni stali si\u0119 tw\u00f3rcy Projektu Valhalla, dlatego te\u017c zdecydowa\u0142em si\u0119 dzisiaj podsumowa\u0107 ostatnie nowo\u015bci &#8211; a jest ich troch\u0119, co w mojej g\u0142owie budzi nadziej\u0119, \u017ce JDK 19 przyniesie nam jej pierwsze \u015blady, cho\u0107by w formie jakiego\u015b preview.<\/p>\n\n\n\n<p>Od d\u0142u\u017cszego czasu aktualizowany s\u0105 dwa g\u0142\u00f3wne powi\u0105zane z Valhall\u0105 JEPy &#8211; <a href=\"https:\/\/openjdk.java.net\/jeps\/401\">JEP 401: Primitive Classes (Preview)<\/a> i <a href=\"http:\/\/openjdk.java.net\/jeps\/402\">JEP 402: Classes for the Basic Primitives (Preview)<\/a>, a tak\u017ce pozostaj\u0105cy ci\u0105gle w formie draftu <a href=\"https:\/\/openjdk.java.net\/jeps\/8277163\">JEP draft: Value Objects (Preview)<\/a>. Sporej aktualizacji doczeka\u0142o si\u0119 te\u017c State of Valhalla &#8211; cykl post\u00f3w blogowych napisanych przez Briana Goetza, kt\u00f3ry stanowi de facto swoist\u0105 bibli\u0119 ca\u0142ego projektu.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/01-background\">State of Valhalla, Part 1: The Road to Valhalla<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/02-object-model\">State of Valhalla, Part 2: The Language Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/03-vm-model\">State of Valhalla, Part 3: The JVM Model<\/a><\/li><\/ul>\n\n\n\n<p>Dokumenty zosta\u0142y zaktualizowane o nowe propozycje API, nazewnictwa, ale tak\u017ce dalsze doprecyzowania i usprawnienia w ca\u0142y modelu. Nie jestem w stanie skr\u00f3ci\u0107 tutaj w przyst\u0119pnej formie ogromu informacji wylewaj\u0105cych si\u0119 z ostatnich publikacji, ale po mojej lekturze zar\u00f3wno JEP\u00f3w, jak i dokument\u00f3w, najciekawszym nowym dodatkiem s\u0105 chyba Value Recordy.<\/p>\n\n\n\n<p>Bardzo myl\u0105ce we wszelkich dyskusjach na temat Rekord\u00f3w w Javie by\u0142 zawsze fakt, \u017ce cho\u0107 ze wzgl\u0119du na swoj\u0105 \u201cfinalno\u015b\u0107\u201d maj\u0105 one wiele wsp\u00f3lnego z klasami prymitywnymi tak naprawd\u0119 w dalszym ci\u0105gu s\u0105 normalnymi klasami, posiadaj\u0105cymi to\u017csamo\u015b\u0107 &#8211; stanowi\u0105 co najwy\u017cej \u201cs\u0142odzik sk\u0142adniowy\u201d, nie daj\u0105c realnych uzysk\u00f3w wydajno\u015bciowych. To odr\u00f3\u017cnia je od klas prymitywnych, kt\u00f3re w zamian za porzucenie konceptu referencji (a co za tym idzie &#8211;&nbsp; to\u017csamo\u015bci klasy) daj\u0105 r\u00f3wnie\u017c spory uzysk je\u015bli chodzi o performance. Dlatego tw\u00f3rcy proponuj\u0105 kolejn\u0105 iteracj\u0119 nad tym konceptem &#8211; Value Recordy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>value record NameAndScore(String name, int score) { } <\/code><\/pre>\n\n\n\n<p>Value Recordy \u0142\u0105cz\u0105 koncepcje rekord\u00f3w z uzyskiem wydajno\u015bciowym jaki przynosi Valhalla. W zamian staj\u0105 si\u0119 jedn\u0105 z najbardziej ograniczonych struktur, trac\u0105c zar\u00f3wno to\u017csamo\u015b\u0107, jak i zdolno\u015b\u0107 oddzielenia API od implementacji.<\/p>\n\n\n\n<p>A na koniec &#8211; nareszcie dowiedzia\u0142em si\u0119, sk\u0105d wzi\u0119\u0142a si\u0119 nazwa Valhalla. Ot\u00f3\u017c okazuje si\u0119, \u017ce jest to podobno zbitka s\u0142\u00f3w val-halla. Val oznacza w niej oczywi\u015bcie Value Type, a halla w tym kontek\u015bcie to nie tyle piek\u0142o, co hall=dom. Ma to zaskakuj\u0105co du\u017co sensu.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c98b260d.png\" alt=\"\"\/><\/figure><\/div>\n\n\n<p>Jak widzicie, jest tego troch\u0119. Ja aktualnie czekam na jakiekolwiek wydanie testowe &#8211; ostatnia iteracja pochodzi bowiem jeszcze z 2019 roku, a bior\u0105c pod uwag\u0119 fakt, \u017ce oparta by\u0142a jeszcze na JDK 14, m\u00f3wimy tutaj o ju\u017c jednak sporej prehistorii &#8211; cho\u0107by wspomniane wy\u017cej rekordy nie mia\u0142y prawa zaistnie\u0107 w prezentowanej powy\u017cej formie. JDK jednak mocno poszed\u0142 ostatnio do przodu.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c99bbf65.png\" alt=\"\"\/><figcaption>2019 to og\u00f3lnie by\u0142 jeszcze nieco inny \u015bwiat.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/01-background\">State of Valhalla, Part 1: The Road to Valhalla<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/02-object-model\">State of Valhalla, Part 2: The Language Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/03-vm-model\">State of Valhalla, Part 3: The JVM Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/401\">JEP 401: Primitive Classes (Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/402\">JEP 402: Classes for the Basic Primitives (Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/8277163\">JEP draft: Value Objects (Preview)<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"2-gradle-dolacza-do-micronaut-foundation\" data-num=2>2. Gradle do\u0142\u0105cza do Micronaut Foundation \ud83d\udc18<\/h2>\n\n\n\n<p>Drugi z dzisiejszych News\u00f3w dotyczy\u0107 b\u0119dzie do\u015b\u0107 ciekawego maria\u017cu.<\/p>\n\n\n\n<p>Na rynku Framework\u00f3w javowych ostatnio robi si\u0119 do\u015b\u0107\u2026 ciasno. Poszczeg\u00f3lne rozwi\u0105zania &#8211; Spring, Micronaut, Quarkus, Helidon &#8211; \u015bcigaj\u0105 si\u0119 mi\u0119dzy sob\u0105 ju\u017c nawet nie pod wzgl\u0119dem du\u017cych \u201cfunkcjonalnych\u201d r\u00f3\u017cnic (ka\u017cde z rozwi\u0105za\u0144 posiada takie oczywisto\u015bci jak wsparcie GraalVM, konteneryzacji czy Kotlina), co raczej na poziom integracji z ca\u0142o\u015bciowym programistycznym ekosystemem. W tym kontek\u015bcie, bardzo interesuj\u0105cym jest \u015bwie\u017co og\u0142oszony, nowy sojusznik Micronauta.<\/p>\n\n\n\n<p>Framework, b\u0119d\u0105cy duchowym spadkobierc\u0105 Grails\u00f3w, w 2020 roku og\u0142osi\u0142 powstanie fundacji maj\u0105cej wspiera\u0107 jego rozw\u00f3j. Lista jej cz\u0142onk\u00f3w do tej pory wygl\u0105da\u0142a <a href=\"https:\/\/micronaut.io\/foundation\/sponsors\/\">do\u015b\u0107 smutno<\/a>, jednak w ko\u0144cu doczekali si\u0119 interesuj\u0105cego \u201clogo\u201d i pierwszego naprawd\u0119 rozpoznawalnego partnera. Mowa tutaj o Gradle.<\/p>\n\n\n\n<p>Najszybciej rosn\u0105cy build tool \u015bwiata JVM zosta\u0142 pierwszym partnerem infrastrukturalnym projektu i pom\u00f3g\u0142 zespo\u0142owi Micronauta skr\u00f3ci\u0107 czasy kompilacji i uruchamiania test\u00f3w. Dzi\u0119ki wsparciu Gradle, usprawnieniu uleg\u0142a te\u017c zdolno\u015b\u0107 tw\u00f3rc\u00f3w frameworku do precyzyjnej replikacji b\u0142\u0119d\u00f3w. Opr\u00f3cz merytorki, Gradle udost\u0119pni\u0142 r\u00f3wnie\u017c przestrze\u0144 serwerow\u0105 w ramach swojej chmury(?) Gradle Enterprise.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9d7c14b.gif\" alt=\"\" width=\"500\" height=\"282\"\/><figcaption>Musz\u0119 przyzna\u0107, \u017ce nigdy nie s\u0142ysza\u0142em o tej cz\u0119\u015bci biznesu Gradle &#8211; i podejrzewam, \u017ce nie tylko ja. Z punktu widzenia reklamowego\u2026 profit.<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/micronaut.io\/2022\/01\/07\/micronaut-foundation-announces-first-tools-and-infrastructure-partner\/\">Micronaut Foundation Announces First Tools and Infrastructure Partner<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"3-przeglad-bibliotek-do-fault-tolerance\" data-num=3>3. Przegl\u0105d bibliotek do Fault Tolerance \ud83e\udd18<\/h2>\n\n\n\n<p>A na koniec &#8211; \u015bwietna, szybka przegl\u0105d\u00f3wka bibliotek od Nicolasa Fr\u00e4nkela.<\/p>\n\n\n\n<p>By\u0142y czasy, gdy kr\u00f3l tak zwanego \u201cFault Tolerance\u201d w ramach JVM by\u0142 tylko jeden &#8211; tym \u015bwiatkiem niepodzielnie rz\u0105dzi\u0142 Hystrix od Netflixa. Ten jednak od pewnego czasu przesta\u0142 by\u0107 wspierany i wyewoluowa\u0142 w Resilience4J. To jednak otworzy\u0142o przestrze\u0144 dla rozwi\u0105za\u0144 konkurencyjnych, kt\u00f3ra to zosta\u0142a skwapliwie wykorzystana zar\u00f3wno przez bardzo podobny do Resilience4J w swoim dzia\u0142aniu Failsafe, jak i tw\u00f3rc\u00f3w Jakarty EE i MicroProfil. Ci ostatni zaproponowali bowiem ca\u0142\u0105 specyfikacj\u0119 w ramach ichniejszego standardu.&nbsp;<\/p>\n\n\n\n<p>Tekst Nicolasa to przegl\u0105d\u00f3wka. Nie spodziewajcie si\u0119, \u017ce w pe\u0142ni nauczycie si\u0119 z niego niuans\u00f3w ka\u017cdego z rozwi\u0105za\u0144, ale prezentuje on najwa\u017cniejsze cechy ka\u017cdego z rozwi\u0105za\u0144, jak r\u00f3wnie\u017c g\u0142\u00f3wne r\u00f3\u017cnice pomi\u0119dzy nimi. Ca\u0142o\u015b\u0107 lektury to dos\u0142ownie par\u0119 minut, a zapewni wystarczaj\u0105ce podstawy, aby m\u00f3c zacz\u0105\u0107 kopa\u0107 \u201cg\u0142\u0119biej\u201d.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9e70217.png\" alt=\"\"\/><figcaption>Oczywi\u015bcie, Tw\u00f3j projekt pewnie nie potrzebuje Fault Tolerance<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/blog.frankel.ch\/comparison-fault-tolerance-libraries\/\">A tentative comparison of fault tolerance libraries on the JVM<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>W dniu dzisiejszym zagregowali\u015bmy dla Was najnowsze informacje na temat Projectu Valhalla, a tak\u017ce przegl\u0105d\u00f3wk\u0119 bibliotek do Fault Tolerance. Opr\u00f3cz tego &#8211; Micronaut pozyska\u0142 bardzo wa\u017cnego sojusznika. <\/p>\n","protected":false},"author":10,"featured_media":7875,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-10021","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl"],"acf":{"estimated_reading_time":"4","weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/JVM.png","feature_image_visible":false,"feature_image_blog":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JVM Tuesday vol. 71 - Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance - Vived<\/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:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 71 - Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance - Vived\" \/>\n<meta property=\"og:description\" content=\"W dniu dzisiejszym zagregowali\u015bmy dla Was najnowsze informacje na temat Projectu Valhalla, a tak\u017ce przegl\u0105d\u00f3wk\u0119 bibliotek do Fault Tolerance. Opr\u00f3cz tego - Micronaut pozyska\u0142 bardzo wa\u017cnego sojusznika.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-11T14:34:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/JVM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 71 &#8211; Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance\",\"datePublished\":\"2022-01-11T14:34:46+00:00\",\"dateModified\":\"2022-09-19T11:10:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/\"},\"wordCount\":964,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/\",\"name\":\"JVM Tuesday vol. 71 - Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png\",\"datePublished\":\"2022-01-11T14:34:46+00:00\",\"dateModified\":\"2022-09-19T11:10:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 71 &#8211; Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JVM Tuesday vol. 71 - Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance - Vived","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:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 71 - Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance - Vived","og_description":"W dniu dzisiejszym zagregowali\u015bmy dla Was najnowsze informacje na temat Projectu Valhalla, a tak\u017ce przegl\u0105d\u00f3wk\u0119 bibliotek do Fault Tolerance. Opr\u00f3cz tego - Micronaut pozyska\u0142 bardzo wa\u017cnego sojusznika.","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/","og_site_name":"Vived","article_published_time":"2022-01-11T14:34:46+00:00","article_modified_time":"2022-09-19T11:10:43+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/JVM.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 71 &#8211; Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance","datePublished":"2022-01-11T14:34:46+00:00","dateModified":"2022-09-19T11:10:43+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/"},"wordCount":964,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/","name":"JVM Tuesday vol. 71 - Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png","datePublished":"2022-01-11T14:34:46+00:00","dateModified":"2022-09-19T11:10:43+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/png.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-71-project-valhalla-micronaut-%e2%99%a5%ef%b8%8f-gradle-fault-tolerance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 71 &#8211; Project Valhalla, Micronaut \u2665\ufe0f Gradle, Fault Tolerance"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Project Valhalla: Status Update&nbsp;\ud83e\ude93<\/h2>\n","innerContent":["\n<h2>1. Project Valhalla: Status Update&nbsp;\ud83e\ude93<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":[],"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9486b86.png\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9486b86.png\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatnimi czasy bardzo aktywni stali si\u0119 tw\u00f3rcy Projektu Valhalla, dlatego te\u017c zdecydowa\u0142em si\u0119 dzisiaj podsumowa\u0107 ostatnie nowo\u015bci - a jest ich troch\u0119, co w mojej g\u0142owie budzi nadziej\u0119, \u017ce JDK 19 przyniesie nam jej pierwsze \u015blady, cho\u0107by w formie jakiego\u015b preview.<\/p>\n","innerContent":["\n<p>Ostatnimi czasy bardzo aktywni stali si\u0119 tw\u00f3rcy Projektu Valhalla, dlatego te\u017c zdecydowa\u0142em si\u0119 dzisiaj podsumowa\u0107 ostatnie nowo\u015bci - a jest ich troch\u0119, co w mojej g\u0142owie budzi nadziej\u0119, \u017ce JDK 19 przyniesie nam jej pierwsze \u015blady, cho\u0107by w formie jakiego\u015b preview.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Od d\u0142u\u017cszego czasu aktualizowany s\u0105 dwa g\u0142\u00f3wne powi\u0105zane z Valhall\u0105 JEPy - <a href=\"https:\/\/openjdk.java.net\/jeps\/401\">JEP 401: Primitive Classes (Preview)<\/a> i <a href=\"http:\/\/openjdk.java.net\/jeps\/402\">JEP 402: Classes for the Basic Primitives (Preview)<\/a>, a tak\u017ce pozostaj\u0105cy ci\u0105gle w formie draftu <a href=\"https:\/\/openjdk.java.net\/jeps\/8277163\">JEP draft: Value Objects (Preview)<\/a>. Sporej aktualizacji doczeka\u0142o si\u0119 te\u017c State of Valhalla - cykl post\u00f3w blogowych napisanych przez Briana Goetza, kt\u00f3ry stanowi de facto swoist\u0105 bibli\u0119 ca\u0142ego projektu.<\/p>\n","innerContent":["\n<p>Od d\u0142u\u017cszego czasu aktualizowany s\u0105 dwa g\u0142\u00f3wne powi\u0105zane z Valhall\u0105 JEPy - <a href=\"https:\/\/openjdk.java.net\/jeps\/401\">JEP 401: Primitive Classes (Preview)<\/a> i <a href=\"http:\/\/openjdk.java.net\/jeps\/402\">JEP 402: Classes for the Basic Primitives (Preview)<\/a>, a tak\u017ce pozostaj\u0105cy ci\u0105gle w formie draftu <a href=\"https:\/\/openjdk.java.net\/jeps\/8277163\">JEP draft: Value Objects (Preview)<\/a>. Sporej aktualizacji doczeka\u0142o si\u0119 te\u017c State of Valhalla - cykl post\u00f3w blogowych napisanych przez Briana Goetza, kt\u00f3ry stanowi de facto swoist\u0105 bibli\u0119 ca\u0142ego projektu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/01-background\">State of Valhalla, Part 1: The Road to Valhalla<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/02-object-model\">State of Valhalla, Part 2: The Language Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/03-vm-model\">State of Valhalla, Part 3: The JVM Model<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/01-background\">State of Valhalla, Part 1: The Road to Valhalla<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/02-object-model\">State of Valhalla, Part 2: The Language Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/03-vm-model\">State of Valhalla, Part 3: The JVM Model<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dokumenty zosta\u0142y zaktualizowane o nowe propozycje API, nazewnictwa, ale tak\u017ce dalsze doprecyzowania i usprawnienia w ca\u0142y modelu. Nie jestem w stanie skr\u00f3ci\u0107 tutaj w przyst\u0119pnej formie ogromu informacji wylewaj\u0105cych si\u0119 z ostatnich publikacji, ale po mojej lekturze zar\u00f3wno JEP\u00f3w, jak i dokument\u00f3w, najciekawszym nowym dodatkiem s\u0105 chyba Value Recordy.<\/p>\n","innerContent":["\n<p>Dokumenty zosta\u0142y zaktualizowane o nowe propozycje API, nazewnictwa, ale tak\u017ce dalsze doprecyzowania i usprawnienia w ca\u0142y modelu. Nie jestem w stanie skr\u00f3ci\u0107 tutaj w przyst\u0119pnej formie ogromu informacji wylewaj\u0105cych si\u0119 z ostatnich publikacji, ale po mojej lekturze zar\u00f3wno JEP\u00f3w, jak i dokument\u00f3w, najciekawszym nowym dodatkiem s\u0105 chyba Value Recordy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Bardzo myl\u0105ce we wszelkich dyskusjach na temat Rekord\u00f3w w Javie by\u0142 zawsze fakt, \u017ce cho\u0107 ze wzgl\u0119du na swoj\u0105 \u201cfinalno\u015b\u0107\u201d maj\u0105 one wiele wsp\u00f3lnego z klasami prymitywnymi tak naprawd\u0119 w dalszym ci\u0105gu s\u0105 normalnymi klasami, posiadaj\u0105cymi to\u017csamo\u015b\u0107 - stanowi\u0105 co najwy\u017cej \u201cs\u0142odzik sk\u0142adniowy\u201d, nie daj\u0105c realnych uzysk\u00f3w wydajno\u015bciowych. To odr\u00f3\u017cnia je od klas prymitywnych, kt\u00f3re w zamian za porzucenie konceptu referencji (a co za tym idzie -&nbsp; to\u017csamo\u015bci klasy) daj\u0105 r\u00f3wnie\u017c spory uzysk je\u015bli chodzi o performance. Dlatego tw\u00f3rcy proponuj\u0105 kolejn\u0105 iteracj\u0119 nad tym konceptem - Value Recordy:<\/p>\n","innerContent":["\n<p>Bardzo myl\u0105ce we wszelkich dyskusjach na temat Rekord\u00f3w w Javie by\u0142 zawsze fakt, \u017ce cho\u0107 ze wzgl\u0119du na swoj\u0105 \u201cfinalno\u015b\u0107\u201d maj\u0105 one wiele wsp\u00f3lnego z klasami prymitywnymi tak naprawd\u0119 w dalszym ci\u0105gu s\u0105 normalnymi klasami, posiadaj\u0105cymi to\u017csamo\u015b\u0107 - stanowi\u0105 co najwy\u017cej \u201cs\u0142odzik sk\u0142adniowy\u201d, nie daj\u0105c realnych uzysk\u00f3w wydajno\u015bciowych. To odr\u00f3\u017cnia je od klas prymitywnych, kt\u00f3re w zamian za porzucenie konceptu referencji (a co za tym idzie -&nbsp; to\u017csamo\u015bci klasy) daj\u0105 r\u00f3wnie\u017c spory uzysk je\u015bli chodzi o performance. Dlatego tw\u00f3rcy proponuj\u0105 kolejn\u0105 iteracj\u0119 nad tym konceptem - Value Recordy:<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>value record NameAndScore(String name, int score) { } <\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>value record NameAndScore(String name, int score) { } <\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Value Recordy \u0142\u0105cz\u0105 koncepcje rekord\u00f3w z uzyskiem wydajno\u015bciowym jaki przynosi Valhalla. W zamian staj\u0105 si\u0119 jedn\u0105 z najbardziej ograniczonych struktur, trac\u0105c zar\u00f3wno to\u017csamo\u015b\u0107, jak i zdolno\u015b\u0107 oddzielenia API od implementacji.<\/p>\n","innerContent":["\n<p>Value Recordy \u0142\u0105cz\u0105 koncepcje rekord\u00f3w z uzyskiem wydajno\u015bciowym jaki przynosi Valhalla. W zamian staj\u0105 si\u0119 jedn\u0105 z najbardziej ograniczonych struktur, trac\u0105c zar\u00f3wno to\u017csamo\u015b\u0107, jak i zdolno\u015b\u0107 oddzielenia API od implementacji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na koniec - nareszcie dowiedzia\u0142em si\u0119, sk\u0105d wzi\u0119\u0142a si\u0119 nazwa Valhalla. Ot\u00f3\u017c okazuje si\u0119, \u017ce jest to podobno zbitka s\u0142\u00f3w val-halla. Val oznacza w niej oczywi\u015bcie Value Type, a halla w tym kontek\u015bcie to nie tyle piek\u0142o, co hall=dom. Ma to zaskakuj\u0105co du\u017co sensu.&nbsp;<\/p>\n","innerContent":["\n<p>A na koniec - nareszcie dowiedzia\u0142em si\u0119, sk\u0105d wzi\u0119\u0142a si\u0119 nazwa Valhalla. Ot\u00f3\u017c okazuje si\u0119, \u017ce jest to podobno zbitka s\u0142\u00f3w val-halla. Val oznacza w niej oczywi\u015bcie Value Type, a halla w tym kontek\u015bcie to nie tyle piek\u0142o, co hall=dom. Ma to zaskakuj\u0105co du\u017co sensu.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c98b260d.png\" alt=\"\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c98b260d.png\" alt=\"\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Jak widzicie, jest tego troch\u0119. Ja aktualnie czekam na jakiekolwiek wydanie testowe - ostatnia iteracja pochodzi bowiem jeszcze z 2019 roku, a bior\u0105c pod uwag\u0119 fakt, \u017ce oparta by\u0142a jeszcze na JDK 14, m\u00f3wimy tutaj o ju\u017c jednak sporej prehistorii - cho\u0107by wspomniane wy\u017cej rekordy nie mia\u0142y prawa zaistnie\u0107 w prezentowanej powy\u017cej formie. JDK jednak mocno poszed\u0142 ostatnio do przodu.<\/p>\n","innerContent":["\n<p>Jak widzicie, jest tego troch\u0119. Ja aktualnie czekam na jakiekolwiek wydanie testowe - ostatnia iteracja pochodzi bowiem jeszcze z 2019 roku, a bior\u0105c pod uwag\u0119 fakt, \u017ce oparta by\u0142a jeszcze na JDK 14, m\u00f3wimy tutaj o ju\u017c jednak sporej prehistorii - cho\u0107by wspomniane wy\u017cej rekordy nie mia\u0142y prawa zaistnie\u0107 w prezentowanej powy\u017cej formie. JDK jednak mocno poszed\u0142 ostatnio do przodu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c99bbf65.png\" alt=\"\"\/><figcaption>2019 to og\u00f3lnie by\u0142 jeszcze nieco inny \u015bwiat.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c99bbf65.png\" alt=\"\"\/><figcaption>2019 to og\u00f3lnie by\u0142 jeszcze nieco inny \u015bwiat.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/01-background\">State of Valhalla, Part 1: The Road to Valhalla<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/02-object-model\">State of Valhalla, Part 2: The Language Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/03-vm-model\">State of Valhalla, Part 3: The JVM Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/401\">JEP 401: Primitive Classes (Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/402\">JEP 402: Classes for the Basic Primitives (Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/8277163\">JEP draft: Value Objects (Preview)<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/01-background\">State of Valhalla, Part 1: The Road to Valhalla<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/02-object-model\">State of Valhalla, Part 2: The Language Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/projects\/valhalla\/design-notes\/state-of-valhalla\/03-vm-model\">State of Valhalla, Part 3: The JVM Model<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/401\">JEP 401: Primitive Classes (Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/402\">JEP 402: Classes for the Basic Primitives (Preview)<\/a><\/li><li><a href=\"https:\/\/openjdk.java.net\/jeps\/8277163\">JEP draft: Value Objects (Preview)<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Gradle do\u0142\u0105cza do Micronaut Foundation \ud83d\udc18<\/h2>\n","innerContent":["\n<h2>2. Gradle do\u0142\u0105cza do Micronaut Foundation \ud83d\udc18<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Drugi z dzisiejszych News\u00f3w dotyczy\u0107 b\u0119dzie do\u015b\u0107 ciekawego maria\u017cu.<\/p>\n","innerContent":["\n<p>Drugi z dzisiejszych News\u00f3w dotyczy\u0107 b\u0119dzie do\u015b\u0107 ciekawego maria\u017cu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na rynku Framework\u00f3w javowych ostatnio robi si\u0119 do\u015b\u0107\u2026 ciasno. Poszczeg\u00f3lne rozwi\u0105zania - Spring, Micronaut, Quarkus, Helidon - \u015bcigaj\u0105 si\u0119 mi\u0119dzy sob\u0105 ju\u017c nawet nie pod wzgl\u0119dem du\u017cych \u201cfunkcjonalnych\u201d r\u00f3\u017cnic (ka\u017cde z rozwi\u0105za\u0144 posiada takie oczywisto\u015bci jak wsparcie GraalVM, konteneryzacji czy Kotlina), co raczej na poziom integracji z ca\u0142o\u015bciowym programistycznym ekosystemem. W tym kontek\u015bcie, bardzo interesuj\u0105cym jest \u015bwie\u017co og\u0142oszony, nowy sojusznik Micronauta.<\/p>\n","innerContent":["\n<p>Na rynku Framework\u00f3w javowych ostatnio robi si\u0119 do\u015b\u0107\u2026 ciasno. Poszczeg\u00f3lne rozwi\u0105zania - Spring, Micronaut, Quarkus, Helidon - \u015bcigaj\u0105 si\u0119 mi\u0119dzy sob\u0105 ju\u017c nawet nie pod wzgl\u0119dem du\u017cych \u201cfunkcjonalnych\u201d r\u00f3\u017cnic (ka\u017cde z rozwi\u0105za\u0144 posiada takie oczywisto\u015bci jak wsparcie GraalVM, konteneryzacji czy Kotlina), co raczej na poziom integracji z ca\u0142o\u015bciowym programistycznym ekosystemem. W tym kontek\u015bcie, bardzo interesuj\u0105cym jest \u015bwie\u017co og\u0142oszony, nowy sojusznik Micronauta.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Framework, b\u0119d\u0105cy duchowym spadkobierc\u0105 Grails\u00f3w, w 2020 roku og\u0142osi\u0142 powstanie fundacji maj\u0105cej wspiera\u0107 jego rozw\u00f3j. Lista jej cz\u0142onk\u00f3w do tej pory wygl\u0105da\u0142a <a href=\"https:\/\/micronaut.io\/foundation\/sponsors\/\">do\u015b\u0107 smutno<\/a>, jednak w ko\u0144cu doczekali si\u0119 interesuj\u0105cego \u201clogo\u201d i pierwszego naprawd\u0119 rozpoznawalnego partnera. Mowa tutaj o Gradle.<\/p>\n","innerContent":["\n<p>Framework, b\u0119d\u0105cy duchowym spadkobierc\u0105 Grails\u00f3w, w 2020 roku og\u0142osi\u0142 powstanie fundacji maj\u0105cej wspiera\u0107 jego rozw\u00f3j. Lista jej cz\u0142onk\u00f3w do tej pory wygl\u0105da\u0142a <a href=\"https:\/\/micronaut.io\/foundation\/sponsors\/\">do\u015b\u0107 smutno<\/a>, jednak w ko\u0144cu doczekali si\u0119 interesuj\u0105cego \u201clogo\u201d i pierwszego naprawd\u0119 rozpoznawalnego partnera. Mowa tutaj o Gradle.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Najszybciej rosn\u0105cy build tool \u015bwiata JVM zosta\u0142 pierwszym partnerem infrastrukturalnym projektu i pom\u00f3g\u0142 zespo\u0142owi Micronauta skr\u00f3ci\u0107 czasy kompilacji i uruchamiania test\u00f3w. Dzi\u0119ki wsparciu Gradle, usprawnieniu uleg\u0142a te\u017c zdolno\u015b\u0107 tw\u00f3rc\u00f3w frameworku do precyzyjnej replikacji b\u0142\u0119d\u00f3w. Opr\u00f3cz merytorki, Gradle udost\u0119pni\u0142 r\u00f3wnie\u017c przestrze\u0144 serwerow\u0105 w ramach swojej chmury(?) Gradle Enterprise.<\/p>\n","innerContent":["\n<p>Najszybciej rosn\u0105cy build tool \u015bwiata JVM zosta\u0142 pierwszym partnerem infrastrukturalnym projektu i pom\u00f3g\u0142 zespo\u0142owi Micronauta skr\u00f3ci\u0107 czasy kompilacji i uruchamiania test\u00f3w. Dzi\u0119ki wsparciu Gradle, usprawnieniu uleg\u0142a te\u017c zdolno\u015b\u0107 tw\u00f3rc\u00f3w frameworku do precyzyjnej replikacji b\u0142\u0119d\u00f3w. Opr\u00f3cz merytorki, Gradle udost\u0119pni\u0142 r\u00f3wnie\u017c przestrze\u0144 serwerow\u0105 w ramach swojej chmury(?) Gradle Enterprise.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","width":500,"height":282},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9d7c14b.gif\" alt=\"\" width=\"500\" height=\"282\"\/><figcaption>Musz\u0119 przyzna\u0107, \u017ce nigdy nie s\u0142ysza\u0142em o tej cz\u0119\u015bci biznesu Gradle - i podejrzewam, \u017ce nie tylko ja. Z punktu widzenia reklamowego\u2026 profit.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9d7c14b.gif\" alt=\"\" width=\"500\" height=\"282\"\/><figcaption>Musz\u0119 przyzna\u0107, \u017ce nigdy nie s\u0142ysza\u0142em o tej cz\u0119\u015bci biznesu Gradle - i podejrzewam, \u017ce nie tylko ja. Z punktu widzenia reklamowego\u2026 profit.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/micronaut.io\/2022\/01\/07\/micronaut-foundation-announces-first-tools-and-infrastructure-partner\/\">Micronaut Foundation Announces First Tools and Infrastructure Partner<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/micronaut.io\/2022\/01\/07\/micronaut-foundation-announces-first-tools-and-infrastructure-partner\/\">Micronaut Foundation Announces First Tools and Infrastructure Partner<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Przegl\u0105d bibliotek do Fault Tolerance \ud83e\udd18<\/h2>\n","innerContent":["\n<h2>3. Przegl\u0105d bibliotek do Fault Tolerance \ud83e\udd18<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na koniec - \u015bwietna, szybka przegl\u0105d\u00f3wka bibliotek od Nicolasa Fr\u00e4nkela.<\/p>\n","innerContent":["\n<p>A na koniec - \u015bwietna, szybka przegl\u0105d\u00f3wka bibliotek od Nicolasa Fr\u00e4nkela.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>By\u0142y czasy, gdy kr\u00f3l tak zwanego \u201cFault Tolerance\u201d w ramach JVM by\u0142 tylko jeden - tym \u015bwiatkiem niepodzielnie rz\u0105dzi\u0142 Hystrix od Netflixa. Ten jednak od pewnego czasu przesta\u0142 by\u0107 wspierany i wyewoluowa\u0142 w Resilience4J. To jednak otworzy\u0142o przestrze\u0144 dla rozwi\u0105za\u0144 konkurencyjnych, kt\u00f3ra to zosta\u0142a skwapliwie wykorzystana zar\u00f3wno przez bardzo podobny do Resilience4J w swoim dzia\u0142aniu Failsafe, jak i tw\u00f3rc\u00f3w Jakarty EE i MicroProfil. Ci ostatni zaproponowali bowiem ca\u0142\u0105 specyfikacj\u0119 w ramach ichniejszego standardu.&nbsp;<\/p>\n","innerContent":["\n<p>By\u0142y czasy, gdy kr\u00f3l tak zwanego \u201cFault Tolerance\u201d w ramach JVM by\u0142 tylko jeden - tym \u015bwiatkiem niepodzielnie rz\u0105dzi\u0142 Hystrix od Netflixa. Ten jednak od pewnego czasu przesta\u0142 by\u0107 wspierany i wyewoluowa\u0142 w Resilience4J. To jednak otworzy\u0142o przestrze\u0144 dla rozwi\u0105za\u0144 konkurencyjnych, kt\u00f3ra to zosta\u0142a skwapliwie wykorzystana zar\u00f3wno przez bardzo podobny do Resilience4J w swoim dzia\u0142aniu Failsafe, jak i tw\u00f3rc\u00f3w Jakarty EE i MicroProfil. Ci ostatni zaproponowali bowiem ca\u0142\u0105 specyfikacj\u0119 w ramach ichniejszego standardu.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tekst Nicolasa to przegl\u0105d\u00f3wka. Nie spodziewajcie si\u0119, \u017ce w pe\u0142ni nauczycie si\u0119 z niego niuans\u00f3w ka\u017cdego z rozwi\u0105za\u0144, ale prezentuje on najwa\u017cniejsze cechy ka\u017cdego z rozwi\u0105za\u0144, jak r\u00f3wnie\u017c g\u0142\u00f3wne r\u00f3\u017cnice pomi\u0119dzy nimi. Ca\u0142o\u015b\u0107 lektury to dos\u0142ownie par\u0119 minut, a zapewni wystarczaj\u0105ce podstawy, aby m\u00f3c zacz\u0105\u0107 kopa\u0107 \u201cg\u0142\u0119biej\u201d.<\/p>\n","innerContent":["\n<p>Tekst Nicolasa to przegl\u0105d\u00f3wka. Nie spodziewajcie si\u0119, \u017ce w pe\u0142ni nauczycie si\u0119 z niego niuans\u00f3w ka\u017cdego z rozwi\u0105za\u0144, ale prezentuje on najwa\u017cniejsze cechy ka\u017cdego z rozwi\u0105za\u0144, jak r\u00f3wnie\u017c g\u0142\u00f3wne r\u00f3\u017cnice pomi\u0119dzy nimi. Ca\u0142o\u015b\u0107 lektury to dos\u0142ownie par\u0119 minut, a zapewni wystarczaj\u0105ce podstawy, aby m\u00f3c zacz\u0105\u0107 kopa\u0107 \u201cg\u0142\u0119biej\u201d.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9e70217.png\" alt=\"\"\/><figcaption>Oczywi\u015bcie, Tw\u00f3j projekt pewnie nie potrzebuje Fault Tolerance<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/img_62a88c9e70217.png\" alt=\"\"\/><figcaption>Oczywi\u015bcie, Tw\u00f3j projekt pewnie nie potrzebuje Fault Tolerance<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/blog.frankel.ch\/comparison-fault-tolerance-libraries\/\">A tentative comparison of fault tolerance libraries on the JVM<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/blog.frankel.ch\/comparison-fault-tolerance-libraries\/\">A tentative comparison of fault tolerance libraries on the JVM<\/a><\/li><\/ul>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10021"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10021\/revisions"}],"predecessor-version":[{"id":10540,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10021\/revisions\/10540"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/7875"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}