{"id":3516,"date":"2024-05-28T09:18:57","date_gmt":"2024-05-28T08:18:57","guid":{"rendered":"https:\/\/www.alpesjug.fr\/?p=3516"},"modified":"2024-09-10T09:49:45","modified_gmt":"2024-09-10T08:49:45","slug":"reactive-streams-4-interfaces-et-apres","status":"publish","type":"post","link":"https:\/\/www.alpesjug.fr\/?p=3516","title":{"rendered":"Reactive Streams. 4 interfaces. Et apr\u00e8s ?"},"content":{"rendered":"\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" data-id=\"3517\" src=\"https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2024\/05\/8f019ee7-30b3-492f-abba-a812e2d8ca8b.jpg\" alt=\"\" class=\"wp-image-3517\" srcset=\"https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2024\/05\/8f019ee7-30b3-492f-abba-a812e2d8ca8b.jpg 1024w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2024\/05\/8f019ee7-30b3-492f-abba-a812e2d8ca8b-300x300.jpg 300w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2024\/05\/8f019ee7-30b3-492f-abba-a812e2d8ca8b-150x150.jpg 150w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2024\/05\/8f019ee7-30b3-492f-abba-a812e2d8ca8b-768x768.jpg 768w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2024\/05\/8f019ee7-30b3-492f-abba-a812e2d8ca8b-80x80.jpg 80w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2024\/05\/8f019ee7-30b3-492f-abba-a812e2d8ca8b-320x320.jpg 320w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">La conf\u00e9rence<\/h2>\n\n\n\n<p>Reactive Streams est une sp\u00e9cification d\u2019interfaces et d\u2019un protocole pour le traitement de flux asynchrones non-bloquants.<br>De nombreuses biblioth\u00e8ques de l\u2019\u00e9cosyst\u00e8me Java s\u2019appuient sur Reactive Streams: il est ainsi possible de connecter un acteur Akka programm\u00e9 en Scala qui envoie un flux d\u2019\u00e9v\u00e8nements \u00e0 une application Quarkus qui utilise le mod\u00e8le de programmation asynchrone de Mutiny en Java.<br>Si Reactive Streams et son cousin Flow du JDK n\u2019exposent que 4 interfaces en apparence tr\u00e8s simples \u00e0 impl\u00e9menter, le diable se cache dans les d\u00e9tails du protocole Reactive Streams.<br>Cette pr\u00e9sentation vous expliquera les dessous de Reactive Streams bas\u00e9 sur notre exp\u00e9rience du projet Mutiny, comment \u00e9crire un composant Reactive Streams correct, l\u2019int\u00e9gration de l\u2019asynchrone dans des frameworks comme Quarkus, les fausses bonnes id\u00e9es li\u00e9es \u00e0 la performance ainsi que le futur de l\u2019\u00e9cosyst\u00e8me r\u00e9actif Java.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le conf\u00e9rencier: Julien Ponge<\/h2>\n\n\n\n<p>Je suis ing\u00e9nieur logiciel principal chez Red Hat.<br>Je travaille principalement sur du r\u00e9actif :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>le projet Eclipse Vert.x, une bo\u00eete \u00e0 outils \u00e9conome en ressources pour \u00e9crire des micro-services \u00e9v\u00e9nementiels \u00e9volutifs et r\u00e9silients sur la JVM,<\/li>\n\n\n\n<li>Mutiny, une biblioth\u00e8que de programmation r\u00e9active intuitive et bas\u00e9e sur les \u00e9v\u00e9nements pour Java,<\/li>\n\n\n\n<li>Quarkus, une pile Java native Kubernetes con\u00e7ue pour OpenJDK HotSpot et GraalVM, utilisant \u00e0 partir des meilleures biblioth\u00e8ques et normes Java.<\/li>\n<\/ul>\n\n\n\n<p>Je suis l&rsquo;auteur d&rsquo;un livre intitul\u00e9 \u00ab <a href=\"https:\/\/www.manning.com\/books\/vertx-in-action\" target=\"_blank\" rel=\"noreferrer noopener\">Vert.x in Action<\/a> \u00bb chez Manning Avant de rejoindre Red Hat, j&rsquo;ai \u00e9t\u00e9 Professeur Associ\u00e9 en informatique et ing\u00e9nierie \u00e0 l&rsquo;INSA de Lyon et au Laboratoire CITI o\u00f9 j&rsquo;ai occup\u00e9 diff\u00e9rents postes d&rsquo;enseignement, de recherche, de direction et de direction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Inscriptions<\/h2>\n\n\n\n<p>Les inscriptions se font sur Meetup <a href=\"https:\/\/www.meetup.com\/fr-FR\/alpesjug\/events\/301290817\/\">https:\/\/www.meetup.com\/fr-FR\/alpesjug\/events\/301290817\/<\/a><\/p>\n\n\n\n<p>Attention, nous nous r\u00e9unirons chez&nbsp;<a href=\"https:\/\/www.google.com\/maps\/place\/Salesforce\/@45.2030902,5.7696478,15z\/data=!4m5!3m4!1s0x0:0x49d5ff5337d1785!8m2!3d45.2030797!4d5.7694228\" target=\"_blank\" rel=\"noreferrer noopener\">SalesForce, 29 Bd des Alpes, 38240 Meylan<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reactive Streams est une sp\u00e9cification d\u2019interfaces et d\u2019un protocole pour le traitement de flux asynchrones non-bloquants.<\/p>\n","protected":false},"author":1,"featured_media":3517,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[368,4,53,11],"class_list":["post-3516","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-annonce","tag-java","tag-jug","tag-opensource","tag-soiree"],"_links":{"self":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/3516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3516"}],"version-history":[{"count":1,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/3516\/revisions"}],"predecessor-version":[{"id":3519,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/3516\/revisions\/3519"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/media\/3517"}],"wp:attachment":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}