> Markdown version of [/videos/993-java-s-project-loom-co-the-end-for-reactive-programming?t=1346](https://www.wearedevelopers.com/videos/993-java-s-project-loom-co-the-end-for-reactive-programming?t=1346). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Java's Project Loom & Co - the end for reactive programming? Are reactive frameworks becoming obsolete? Discover how Java 21's Project Loom uses virtual threads to deliver massive, non-blocking concurrency without sacrificing simple, sequential code. - **Speakers:** [Jan Weinschenker](https://www.wearedevelopers.com/@jan-weinschenker) - **Event:** World Congress 2024 - **Published:** August 20, 2024 - **Duration:** 23:58 - **URL:** https://www.wearedevelopers.com/videos/993-java-s-project-loom-co-the-end-for-reactive-programming ## Summary Traditional threading in Java has long struggled with handling high-concurrency workloads efficiently. When platform threads block to wait for external events like database queries or web service responses, they waste critical processing time, which frequently leads to resource depletion and out-of-memory errors during traffic spikes. For over a decade, the industry standard solution has been reactive programming, utilizing frameworks like Spring WebFlux, Mutiny, or Vert.x to decouple execution and achieve high responsiveness through message-driven, non-blocking architectures. However, these solutions require developers to master entirely new domain-specific languages and rewrite existing sequential codebases into complex callbacks or stream processing models. Project Loom, officially introduced in Java 21, fundamentally changes this dynamic by bringing non-blocking concurrency directly to the JVM level through virtual threads. Instead of adopting external frameworks or shifting paradigms entirely, developers can continue writing simple, sequential imperative code. When a lightweight virtual thread encounters a blocking operation, the JVM automatically unmounts it from the underlying platform-level carrier thread, immediately freeing that carrier thread to process other tasks. Once the blocked operation resolves, the virtual thread is seamlessly re-mounted to an available carrier thread to resume execution. By natively allocating vast amounts of concurrent work to a limited number of platform threads, project Loom dramatically reduces the effort required to build and maintain high-throughput applications. As language architects have advised, engineering teams can now "try the easy stuff first" using familiar sequential patterns before reaching for more complicated solutions. While reactive frameworks remain highly valuable for specialized, complex event-stream processing, Project Loom significantly scales down the barrier to writing natively scalable, heavily concurrent software directly in modern Java. **Keywords:** java project loom, reactive programming frameworks, java 21 virtual threads, jvm concurrency optimization, carrier threads scaling, spring webflux, message-driven application architecture, kotlin coroutines non-blocking execution, high-throughput java applications, preventing thread blocking, resolving out of memory errors under load, reactive manifesto system design, imperative vs reactive code, lightweight thread execution ## Chapters 1. **Introduction to Project Loom and reactive programming** (00:03) — This presentation introduces the competing paradigms of Project Loom and reactive programming. 1. **Goals and concepts behind Java Project Loom** (01:39) — Virtual threads aim to drastically reduce the effort of writing and maintaining concurrent applications. 1. **Core principles of reactive programming and responsiveness** (03:44) — Message-driven models help applications remain responsive and resilient during unpredictable load spikes. 1. **Understanding thread states and blocking consequences** (06:31) — Traditional blocked threads waste processing time while waiting for external service responses. 1. **Approaches to non-blocking software before Project Loom** (09:28) — Previous concurrency solutions relied on callbacks, complex reactive frameworks, or Kotlin coroutines. 1. **Failing concurrency with standard Java thread limitations** (13:15) — A standard imperative Java approach fails with out-of-memory errors when processing massive concurrent delays. 1. **Solving thread blocking with reactive frameworks and Kotlin** (15:09) — Refactoring code with Spring WebFlux or Kotlin coroutines successfully resolves massive thread-blocking bottlenecks. 1. **Simplifying concurrent code with Java 21 virtual threads** (18:22) — Java 21 virtual threads efficiently process high-volume concurrency without requiring developers to abandon imperative code. 1. **Mechanics of virtual and carrier threads in Java** (20:46) — The Java Virtual Machine automatically unmounts blocked virtual threads to keep carrier threads freely available. 1. **Evaluating the future of reactive programming in Java** (22:26) — Project Loom provides a simpler concurrency solution that minimizes the need to learn complex reactive frameworks. ## Related Moments - [Introduction to Loom and its impact on concurrency](https://www.wearedevelopers.com/videos/1973-beyond-loom-practical-patterns-for-virtual-threads-structured-concurrency-and-reactive-interop) (from "Beyond Loom: Practical Patterns for Virtual Threads, Structured Concurrency and Reactive Interop") - [Contrasting Project Loom virtual threads with reactive semantics](https://www.wearedevelopers.com/videos/383-kubernetes-native-java) (from "Kubernetes Native Java") - [Overview of Project Loom and virtual threads](https://www.wearedevelopers.com/videos/843-java-21-the-revolution-of-virtual-threads-a-deep-dive) (from "Java 21: The Revolution of Virtual Threads - A Deep Dive") - [Origins of Project Loom and lightweight threading semantics](https://www.wearedevelopers.com/videos/1973-beyond-loom-practical-patterns-for-virtual-threads-structured-concurrency-and-reactive-interop) (from "Beyond Loom: Practical Patterns for Virtual Threads, Structured Concurrency and Reactive Interop") - [Contextual history of reactive programming in Java ecosystems](https://www.wearedevelopers.com/videos/1973-beyond-loom-practical-patterns-for-virtual-threads-structured-concurrency-and-reactive-interop) (from "Beyond Loom: Practical Patterns for Virtual Threads, Structured Concurrency and Reactive Interop") - [Exploring reactive programming implications and virtual thread usage](https://www.wearedevelopers.com/videos/659-introduction-and-pitfalls-of-java-s-new-concurrency-model) (from "Introduction and pitfalls of Java's new concurrency model") ## Related Articles - [The Concept of Concurrency & Multithreading: What Are They And How They Function](https://www.wearedevelopers.com/magazine/89-the-concept-of-concurrency-multithreading-what-are-they-and-how-they-function) - [Using Java 17 latest features in real world projects](https://www.wearedevelopers.com/magazine/121-using-java-17-latest-features-in-real-world-projects) - [Top 10 Java Libraries](https://www.wearedevelopers.com/magazine/364-top-10-java-libraries) - [Now is the time for industrialized software development](https://www.wearedevelopers.com/magazine/601-now-is-the-time-for-industrialized-software-development) ## Related Jobs - [Senior Software Engineer (L3)](https://www.wearedevelopers.com/jobs/ext/1956800-senior-software-engineer-l3) at **Twilio** - [Software Engineer (L2) Segment Team](https://www.wearedevelopers.com/jobs/ext/238794-software-engineer-l2-segment-team) at **Twilio** - [Software Engineer L3](https://www.wearedevelopers.com/jobs/ext/1840587-software-engineer-l3) at **Twilio** - [Software Engineer (L2) Segment Team](https://www.wearedevelopers.com/jobs/ext/209570-software-engineer-l2-segment-team) at **Twilio** - [Software Engineer (L3) Data Substrate](https://www.wearedevelopers.com/jobs/ext/496550-software-engineer-l3-data-substrate) at **Twilio** - [Software Engineer (L3) Data Substrate](https://www.wearedevelopers.com/jobs/ext/494111-software-engineer-l3-data-substrate) at **Twilio**