{"id":86,"date":"2025-04-19T05:55:00","date_gmt":"2025-04-19T05:55:00","guid":{"rendered":"https:\/\/harshad-sonawane.com\/blog\/?p=86"},"modified":"2025-02-22T07:05:45","modified_gmt":"2025-02-22T07:05:45","slug":"reactive-programming-in-java-with-project-reactor","status":"publish","type":"post","link":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/","title":{"rendered":"Reactive Programming in Java with Project Reactor"},"content":{"rendered":"\n<p>Reactive Programming has become essential for building <strong>scalable, responsive<\/strong>, and <strong>high-performance<\/strong> applications. <strong>Project Reactor<\/strong>, a core library for <strong>reactive streams in <a href=\"https:\/\/harshad-sonawane.com\/blog\/reduce-cloud-costs-java-applications\/\">Java<\/a><\/strong>, provides an elegant way to handle <strong>asynchronous<\/strong> and <strong>non-blocking<\/strong> operations. In this guide, we\u2019ll explore <strong>Reactive Programming<\/strong>, its benefits, and how to use <strong>Project Reactor<\/strong> effectively in Java.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is Reactive Programming?<\/strong><\/h2>\n\n\n\n<p>Reactive Programming is a <strong>paradigm<\/strong> focused on handling <strong>asynchronous data streams<\/strong> in a <strong>non-blocking<\/strong> manner. It allows systems to be <strong>event-driven, resilient, and scalable<\/strong> by applying the principles of the <strong>Reactive Streams Specification<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Key Features:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Asynchronous &amp; Non-Blocking<\/strong>: Uses event-driven architecture for handling concurrent operations.<\/li>\n\n\n\n<li><strong>Reactive Streams<\/strong>: Provides <strong>flow control<\/strong> to prevent overwhelming consumers.<\/li>\n\n\n\n<li><strong>Functional Programming Style<\/strong>: Uses declarative composition instead of imperative loops.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why Use Project Reactor?<\/strong><\/h2>\n\n\n\n<p>Project Reactor is a reactive library that implements <strong>Reactive Streams Specification<\/strong> and is the backbone of <strong>Spring <a href=\"https:\/\/harshad-sonawane.com\/blog\/building-real-time-applications-java-architecture-frameworks\/\">WebFlux<\/a><\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Advantages of Project Reactor:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Efficient Resource Utilization<\/strong> (Non-blocking execution)<\/li>\n\n\n\n<li><strong>Automatic Backpressure Handling<\/strong><\/li>\n\n\n\n<li><strong>Seamless Integration with Spring WebFlux<\/strong><\/li>\n\n\n\n<li><strong>Functional and Declarative API<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Setting Up Project Reactor<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Maven Dependency<\/strong><\/h3>\n\n\n\n<p>Add the following dependencies to your <code>pom.xml<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"Java\" class=\"language-Java\">&lt;dependencies&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;io.projectreactor&lt;\/groupId&gt;\n        &lt;artifactId&gt;reactor-core&lt;\/artifactId&gt;\n        &lt;version&gt;3.4.20&lt;\/version&gt;\n    &lt;\/dependency&gt;\n&lt;\/dependencies&gt;<\/code><\/pre>\n\n\n\n<p>For <strong>Spring WebFlux<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"Java\" class=\"language-Java\">&lt;dependency&gt;\n    &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n    &lt;artifactId&gt;spring-boot-starter-webflux&lt;\/artifactId&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Core Concepts in Project Reactor<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Publisher &amp; Subscriber<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Publisher<\/strong>: Produces data asynchronously (<code>Flux<\/code>, <code>Mono<\/code>).<\/li>\n\n\n\n<li><strong>Subscriber<\/strong>: Consumes data from <code>Publisher<\/code>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Operators in Project Reactor<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Transformation<\/strong>: <code>map()<\/code>, <code>flatMap()<\/code><\/li>\n\n\n\n<li><strong>Filtering<\/strong>: <code>filter()<\/code>, <code>take()<\/code><\/li>\n\n\n\n<li><strong>Combining<\/strong>: <code>zip()<\/code>, <code>merge()<\/code><\/li>\n\n\n\n<li><strong>Error Handling<\/strong>: <code>onErrorResume()<\/code>, <code>onErrorReturn()<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Working with Mono and Flux<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Mono (Handling Single Data Item)<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"Java\" class=\"language-Java\">Mono&lt;String&gt; monoExample = Mono.just(\"Hello, Reactive World!\");\nmonoExample.subscribe(System.out::println);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Flux (Handling Multiple Data Items)<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"Java\" class=\"language-Java\">Flux&lt;String&gt; fluxExample = Flux.just(\"Java\", \"Spring\", \"Reactor\");\nfluxExample.subscribe(System.out::println);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Handling Errors in Reactive Streams<\/strong><\/h2>\n\n\n\n<p>Errors in a <strong>reactive pipeline<\/strong> must be handled efficiently using operators like <code>onErrorResume()<\/code> and <code>onErrorReturn()<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"Java\" class=\"language-Java\">Flux&lt;String&gt; fluxWithError = Flux.just(\"Java\", \"Spring\", \"Reactor\")\n    .concatWith(Mono.error(new RuntimeException(\"Error occurred\")))\n    .onErrorResume(e -&gt; Flux.just(\"Recovered from error\"));\n\nfluxWithError.subscribe(System.out::println);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Backpressure Handling<\/strong><\/h2>\n\n\n\n<p>Backpressure ensures that <strong>fast publishers<\/strong> do not overwhelm <strong>slow subscribers<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"Java\" class=\"language-Java\">Flux&lt;Integer&gt; flux = Flux.range(1, 100)\n    .onBackpressureDrop();\nflux.subscribe(System.out::println);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Integrating Project Reactor with Spring WebFlux<\/strong><\/h2>\n\n\n\n<p>Spring WebFlux is a <strong>fully non-blocking<\/strong> reactive web framework built on Project Reactor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Example REST Controller using Spring WebFlux<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"Java\" class=\"language-Java\">@RestController\n@RequestMapping(\"\/users\")\npublic class UserController {\n    @GetMapping\n    public Flux&lt;String&gt; getUsers() {\n        return Flux.just(\"Alice\", \"Bob\", \"Charlie\");\n    }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p><strong>Project Reactor<\/strong> is an excellent choice for building <strong>reactive applications<\/strong> in Java. It enables <strong>high concurrency<\/strong>, efficient <strong>resource utilization<\/strong>, and provides <strong>seamless integration<\/strong> with <strong>Spring WebFlux<\/strong>. By mastering <strong>Mono, Flux, error handling, and backpressure mechanisms<\/strong>, developers can build robust <strong>reactive systems<\/strong>.<\/p>\n\n\n\n<p>By following this guide, you can start implementing <strong>Reactive Programming in Java with Project Reactor<\/strong> in your applications for improved performance and scalability.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reactive Programming has become essential for building scalable, responsive, and high-performance applications. Project Reactor, a core library for reactive streams in Java, provides an elegant way to handle asynchronous and non-blocking operations. In this guide, we\u2019ll explore Reactive Programming, its benefits, and how to use Project Reactor effectively in Java. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":88,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":"","jetpack_publicize_message":"Handle asynchronous data streams efficiently with Project Reactor, Flux, and Mono. Learn how to build responsive, non-blocking applications!\n\n#Java #ReactiveProgramming #ProjectReactor #SpringBoot #Asynchronous\n\n\ud83d\udd17 Full blog here: ","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[36],"tags":[121,2,106,118,117,119,120],"class_list":["post-86","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-spring-boot-aws-cloud","tag-async-programming","tag-java","tag-java-concurrency","tag-project-reactor","tag-reactive-programming","tag-reactive-streams","tag-spring-webflux"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Reactive Programming in Java with Project Reactor - &lt;&gt;HARSHAD&#039;s Dev Diary&lt;\/&gt;<\/title>\n<meta name=\"description\" content=\"Master Reactive Programming in Java with Project Reactor to build high-performance, scalable, and responsive applications with real-world examples and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reactive Programming in Java with Project Reactor - &lt;&gt;HARSHAD&#039;s Dev Diary&lt;\/&gt;\" \/>\n<meta property=\"og:description\" content=\"Master Reactive Programming in Java with Project Reactor to build high-performance, scalable, and responsive applications with real-world examples and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/\" \/>\n<meta property=\"og:site_name\" content=\"&lt;&gt;HARSHAD&#039;s Dev Diary&lt;\/&gt;\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-19T05:55:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"HS\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"HS\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/\"},\"author\":{\"name\":\"HS\",\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/#\\\/schema\\\/person\\\/d82781218ba30c34fa81b49e8393681e\"},\"headline\":\"Reactive Programming in Java with Project Reactor\",\"datePublished\":\"2025-04-19T05:55:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/\"},\"wordCount\":344,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/#\\\/schema\\\/person\\\/d82781218ba30c34fa81b49e8393681e\"},\"image\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp\",\"keywords\":[\"Async Programming\",\"Java\",\"Java Concurrency\",\"Project Reactor\",\"Reactive Programming\",\"Reactive Streams\",\"Spring WebFlux\"],\"articleSection\":[\"Java, Spring Boot, AWS, Cloud\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/\",\"url\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/\",\"name\":\"Reactive Programming in Java with Project Reactor - &lt;&gt;HARSHAD&#039;s Dev Diary&lt;\\\/&gt;\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp\",\"datePublished\":\"2025-04-19T05:55:00+00:00\",\"description\":\"Master Reactive Programming in Java with Project Reactor to build high-performance, scalable, and responsive applications with real-world examples and best practices.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#primaryimage\",\"url\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp\",\"contentUrl\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp\",\"width\":1024,\"height\":1024,\"caption\":\"Reactive Programming in Java with Project Reactor\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/reactive-programming-in-java-with-project-reactor\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reactive Programming in Java with Project Reactor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/\",\"name\":\"Harshad's Dev Diary\",\"description\":\"HARSHAD&#039;s Dev Diary\",\"publisher\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/#\\\/schema\\\/person\\\/d82781218ba30c34fa81b49e8393681e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/#\\\/schema\\\/person\\\/d82781218ba30c34fa81b49e8393681e\",\"name\":\"HS\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/about.jpg\",\"url\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/about.jpg\",\"contentUrl\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/about.jpg\",\"width\":400,\"height\":400,\"caption\":\"HS\"},\"logo\":{\"@id\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/about.jpg\"},\"sameAs\":[\"https:\\\/\\\/harshad-sonawane.com\\\/blog\"],\"url\":\"https:\\\/\\\/harshad-sonawane.com\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reactive Programming in Java with Project Reactor - &lt;&gt;HARSHAD&#039;s Dev Diary&lt;\/&gt;","description":"Master Reactive Programming in Java with Project Reactor to build high-performance, scalable, and responsive applications with real-world examples and best practices.","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:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/","og_locale":"en_US","og_type":"article","og_title":"Reactive Programming in Java with Project Reactor - &lt;&gt;HARSHAD&#039;s Dev Diary&lt;\/&gt;","og_description":"Master Reactive Programming in Java with Project Reactor to build high-performance, scalable, and responsive applications with real-world examples and best practices.","og_url":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/","og_site_name":"&lt;&gt;HARSHAD&#039;s Dev Diary&lt;\/&gt;","article_published_time":"2025-04-19T05:55:00+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp","type":"image\/webp"}],"author":"HS","twitter_card":"summary_large_image","twitter_misc":{"Written by":"HS","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#article","isPartOf":{"@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/"},"author":{"name":"HS","@id":"https:\/\/harshad-sonawane.com\/blog\/#\/schema\/person\/d82781218ba30c34fa81b49e8393681e"},"headline":"Reactive Programming in Java with Project Reactor","datePublished":"2025-04-19T05:55:00+00:00","mainEntityOfPage":{"@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/"},"wordCount":344,"commentCount":0,"publisher":{"@id":"https:\/\/harshad-sonawane.com\/blog\/#\/schema\/person\/d82781218ba30c34fa81b49e8393681e"},"image":{"@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#primaryimage"},"thumbnailUrl":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp","keywords":["Async Programming","Java","Java Concurrency","Project Reactor","Reactive Programming","Reactive Streams","Spring WebFlux"],"articleSection":["Java, Spring Boot, AWS, Cloud"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/","url":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/","name":"Reactive Programming in Java with Project Reactor - &lt;&gt;HARSHAD&#039;s Dev Diary&lt;\/&gt;","isPartOf":{"@id":"https:\/\/harshad-sonawane.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#primaryimage"},"image":{"@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#primaryimage"},"thumbnailUrl":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp","datePublished":"2025-04-19T05:55:00+00:00","description":"Master Reactive Programming in Java with Project Reactor to build high-performance, scalable, and responsive applications with real-world examples and best practices.","breadcrumb":{"@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#primaryimage","url":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp","contentUrl":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/04\/DALL\u00b7E-2025-02-15-23.06.07-A-minimalistic-and-illustrative-image-representing-Reactive-Programming-in-Java-with-Project-Reactor.-The-design-features-interconnected-nodes-with-.webp","width":1024,"height":1024,"caption":"Reactive Programming in Java with Project Reactor"},{"@type":"BreadcrumbList","@id":"https:\/\/harshad-sonawane.com\/blog\/reactive-programming-in-java-with-project-reactor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/harshad-sonawane.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Reactive Programming in Java with Project Reactor"}]},{"@type":"WebSite","@id":"https:\/\/harshad-sonawane.com\/blog\/#website","url":"https:\/\/harshad-sonawane.com\/blog\/","name":"Harshad's Dev Diary","description":"HARSHAD&#039;s Dev Diary","publisher":{"@id":"https:\/\/harshad-sonawane.com\/blog\/#\/schema\/person\/d82781218ba30c34fa81b49e8393681e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/harshad-sonawane.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/harshad-sonawane.com\/blog\/#\/schema\/person\/d82781218ba30c34fa81b49e8393681e","name":"HS","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/02\/about.jpg","url":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/02\/about.jpg","contentUrl":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/02\/about.jpg","width":400,"height":400,"caption":"HS"},"logo":{"@id":"https:\/\/harshad-sonawane.com\/blog\/wp-content\/uploads\/2025\/02\/about.jpg"},"sameAs":["https:\/\/harshad-sonawane.com\/blog"],"url":"https:\/\/harshad-sonawane.com\/blog\/author\/admin\/"}]}},"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/posts\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":3,"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/posts\/86\/revisions"}],"predecessor-version":[{"id":167,"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/posts\/86\/revisions\/167"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/media\/88"}],"wp:attachment":[{"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/media?parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/categories?post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/harshad-sonawane.com\/blog\/wp-json\/wp\/v2\/tags?post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}