<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Reactive on Pi Stack</title>
    <link>https://www.pistack.xyz/tags/reactive/</link>
    <description>Recent content in Reactive on Pi Stack</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 26 Aug 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.pistack.xyz/tags/reactive/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Kotlin Concurrency in 2026: kotlinx.coroutines vs RxJava vs Flow — Which One Should You Actually Use?</title>
      <link>https://www.pistack.xyz/posts/2026-08-26-kotlin-concurrency-coroutines-rxjava-flow-comparison/</link>
      <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://www.pistack.xyz/posts/2026-08-26-kotlin-concurrency-coroutines-rxjava-flow-comparison/</guid>
      <description>&lt;p&gt;Kotlin&amp;rsquo;s &lt;code&gt;launch&lt;/code&gt; and &lt;code&gt;async&lt;/code&gt; have been the default way to write concurrent code on the JVM since 2018, yet a massive amount of production code — especially Android and legacy JVM services — still runs on RxJava&amp;rsquo;s observable streams. If you open almost any large Kotlin codebase today, you will find both &lt;code&gt;suspend&lt;/code&gt; functions and &lt;code&gt;Observable&lt;/code&gt; chains living side by side, and teams disagreeing about whether to migrate. This article settles the argument: here is exactly what kotlinx.coroutines, RxJava, and the coroutines-based Flow API are good at, where each one hurts, and how to migrate without rewriting everything at once.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
