{"id":1578,"date":"2026-01-31T19:41:07","date_gmt":"2026-02-01T01:41:07","guid":{"rendered":"https:\/\/www.djug.org\/?p=1578"},"modified":"2026-01-31T22:03:57","modified_gmt":"2026-02-01T04:03:57","slug":"daniel-hinojosa-javas-asynchronous-ecosystem-too-many-tools-one-jvm","status":"publish","type":"post","link":"https:\/\/www.djug.org\/?p=1578","title":{"rendered":"Daniel Hinojosa: Java&#8217;s Asynchronous Ecosystem -Too Many Tools, One JVM"},"content":{"rendered":"<div class=\"flex items-baseline justify-between\">\n<div class=\"flex gap-ds2-12 items-center\">\n<div class=\"flex flex-col gap-ds2-4\">\n<h2 class=\"ds2-b24 text-ds2-text-fill-primary-enabled\">Wednesday, February 11, 2026 at<a href=\"http:\/\/google.com\/maps\/search\/?api=1&amp;query=39.573505%2C%20-104.881676\"> Thrive Centennial<\/a><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"flex flex-col items-start gap-ds2-16\">\n<div class=\"w-full break-words transition-all duration-300 \">\n<p class=\"mb-ds2-10\">5:30-6:00: Food, Soda, Beer, and Networking<\/p>\n<p class=\"mb-ds2-10\">6:00-6:15: Announcements<\/p>\n<p class=\"mb-ds2-10\"><strong>6:15-7:45: Java&#8217;s Asynchronous Ecosystem -Too Many Tools, One JVM<\/strong><\/p>\n<p class=\"mb-ds2-10\">Java has accumulated a diverse toolbox for concurrency and asynchrony over the decades, ranging from classic threads to parallel streams, from\u00a0<em>Future<\/em>\u00a0to\u00a0<em>CompletableFuture<\/em>, and from reactive libraries to the latest innovations, including virtual threads, structured concurrency, and the Vector API. But with so many options, the question is: which ones should we use today, which still matter, and which belong in the history books?<\/p>\n<p class=\"mb-ds2-10\">In this talk, we\u2019ll explore the entire spectrum:<\/p>\n<ul class=\"pl-5 list-disc mb-4\">\n<li>Classic Threads \u2013 the original concurrency primitive.<\/li>\n<li>Parallel Streams \u2013 data parallelism for the collections era.<\/li>\n<li>Futures &amp; CompletableFuture \u2013 async results with callbacks and chaining.<\/li>\n<li>Reactive Programming \u2013 backpressure, publishers, and the rise of frameworks like Reactor and RxJava.<\/li>\n<li>Virtual Threads \u2013 Lightweight Concurrency Made Mainstream.<\/li>\n<li>Structured Concurrency \u2013 Taming async chaos with lifetimes and scopes.<\/li>\n<li>Vector API \u2013 data-level parallelism on modern CPUs.<\/li>\n<\/ul>\n<p class=\"mb-ds2-10\">We\u2019ll also tackle the hard questions:<\/p>\n<ul class=\"pl-5 list-disc mb-4\">\n<li>Do virtual threads really kill the need for reactive programming?<\/li>\n<li>What does it mean by \u201chidden stack traces,\u201d and how do they impact debugging and profiling?<\/li>\n<li>Where should you invest today, and what patterns should you abandon permanently?<\/li>\n<\/ul>\n<p class=\"mb-ds2-10\"><strong>About Daniel Hinojosa<\/strong><br \/>\nDaniel is a programmer, consultant, instructor, speaker, and recent author. With over 20 years of experience, he does work for private, educational, and government institutions. He is also currently a featured speaker on the No Fluff Just Stuff tour. Daniel loves JVM languages like Java, Groovy, and Scala; but also dabbles with non JVM languages like Haskell, Ruby, Python, LISP, C, C++. He is an avid Pomodoro Technique Practitioner and makes every attempt to learn a new programming language every year. For downtime, he enjoys reading, swimming, Legos, football, and barbecuing.<\/p>\n<p class=\"mb-ds2-10\"><strong>7:45: Door prizes<\/strong><\/p>\n<p class=\"mb-ds2-10\">Thanks to our sponsors!<\/p>\n<ul class=\"pl-5 list-disc mb-4\">\n<li><a class=\"!text-ds2-text-fill-brand_primary-enabled hover:!text-ds2-text-fill-brand_primary-hover\" href=\"https:\/\/www.teksystems.com\/\" target=\"_blank\" rel=\"nofollow ugc noopener noreferrer\">TEKsystems<\/a>\u00a0&#8211; Food and Drink(Soda, Water, Gatorade)<\/li>\n<li><a class=\"!text-ds2-text-fill-brand_primary-enabled hover:!text-ds2-text-fill-brand_primary-hover\" href=\"https:\/\/www.stridesstaffing.com\/\" target=\"_blank\" rel=\"nofollow ugc noopener noreferrer\">Strides Staffing<\/a>\u00a0&#8211; Beer<\/li>\n<li><a class=\"!text-ds2-text-fill-brand_primary-enabled hover:!text-ds2-text-fill-brand_primary-hover\" href=\"https:\/\/agiledeveloper.com\/\" target=\"_blank\" rel=\"nofollow ugc noopener noreferrer\">Agile Developer<\/a>\u00a0&#8211; dev2next will be held in Lone Tree, Colorado from October 12 to 15, 2026. As an incentive for DJUG members to attend the JUG meetings in-person, dev2next will raffle out one free ticket for the conference each month a meeting is held, through September 2026.<\/li>\n<li><a class=\"!text-ds2-text-fill-brand_primary-enabled hover:!text-ds2-text-fill-brand_primary-hover\" href=\"https:\/\/www.jetbrains.com\/\" target=\"_blank\" rel=\"nofollow ugc noopener noreferrer\">JetBrains<\/a>\u00a0&#8211; Coupon for 12-month personal subscription to any Jetbrains IDE<\/li>\n<li><a class=\"!text-ds2-text-fill-brand_primary-enabled hover:!text-ds2-text-fill-brand_primary-hover\" href=\"https:\/\/www.thriveworkplace.com\/centennial\/\" target=\"_blank\" rel=\"nofollow ugc noopener noreferrer\">Thrive Workplace<\/a>\u00a0&#8211; Event Host<\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wednesday, February 11, 2026 at Thrive Centennial 5:30-6:00: Food, Soda, Beer, and Networking 6:00-6:15: Announcements 6:15-7:45: Java&#8217;s Asynchronous Ecosystem -Too Many Tools, One JVM Java has accumulated a diverse toolbox for concurrency and asynchrony over the decades, ranging from classic &hellip; <a href=\"https:\/\/www.djug.org\/?p=1578\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1578","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.djug.org\/index.php?rest_route=\/wp\/v2\/posts\/1578","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.djug.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.djug.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.djug.org\/index.php?rest_route=\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.djug.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1578"}],"version-history":[{"count":1,"href":"https:\/\/www.djug.org\/index.php?rest_route=\/wp\/v2\/posts\/1578\/revisions"}],"predecessor-version":[{"id":1579,"href":"https:\/\/www.djug.org\/index.php?rest_route=\/wp\/v2\/posts\/1578\/revisions\/1579"}],"wp:attachment":[{"href":"https:\/\/www.djug.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.djug.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.djug.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}