<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:webfeeds="http://webfeeds.org/rss/1.0">
  <channel>
    <title>Petabridge: Beyond HTTP</title>
    <description>Open Source Distributed Systems in .NET</description>
    <link>https://petabridge.com</link>
    <atom:link href="https://petabridge.com/blog/feed.xml" rel="self" type="application/rss+xml" />
    <webfeeds:analytics id="G-LY71Y0GXPT" engine="GoogleAnalytics"/>
    <webfeeds:cover image="https://petabridge.com/images/petabridge_logo.png" />

    

    

      

      

      <item>
        <title>Building a Distributed Job Scheduler with Akka.NET</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


18 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;Imagine your business has to execute long-running jobs that can take anywhere from a few minutes to tens of hours to execute. You want to scale horizontally on-demand in order to parallelize job execution - Akka.NET is a perfect technology for that!&lt;/p&gt;

&lt;p&gt;We want to:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Distribute jobs evenly across an arbitrary number of workers;&lt;/li&gt;
  &lt;li&gt;Recover mid-flight jobs in the event of worker death;&lt;/li&gt;
  &lt;li&gt;Have our job scheduler / coordinator survive restarts and crashes; and&lt;/li&gt;
  &lt;li&gt;Support scaling the system horizontally (adding new nodes) &lt;em&gt;without&lt;/em&gt; interrupting or rebalancing jobs that are already in-progress.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We built &lt;a href=&quot;https://github.com/Aaronontheweb/akka.net-custom-job-scheduling&quot;&gt;an open source proof of concept work distribution platform&lt;/a&gt; for one of our &lt;a href=&quot;https://petabridge.com/services/support/&quot;&gt;Akka.NET Support customers&lt;/a&gt; who has this design challenge in their domain. Here’s what the dashboard looks like:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://petabridge.com/images/2026/distributed-job-scheduler/job-scheduler-dashboard.gif&quot; alt=&quot;The live dashboard: jobs spread across three worker nodes by capacity, progress bars advancing, and work moving from Running to Queued to Completed as the cluster drains the backlog&quot; /&gt;&lt;/p&gt;

&lt;p&gt;How does it work and how can it apply to your business too?&lt;/p&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/akkadotnet-distributed-job-scheduler/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Fri, 31 Jul 2026 14:00:00 +0000</pubDate>
        <link>https://petabridge.com/blog/akkadotnet-distributed-job-scheduler/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/akkadotnet-distributed-job-scheduler/</guid>
      </item>
    

      

      

      <item>
        <title>Introducing Netclaw: An Always-On, Autonomous Agent Built on Akka.NET</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


14 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;I’ve been wanting to write this post every single day for about six weeks now, and I finally get to: we shipped a brand new open source project called &lt;a href=&quot;https://netclaw.dev/&quot;&gt;Netclaw&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Netclaw is an always-on, autonomous personal assistant built on top of large language models and &lt;a href=&quot;https://getakka.net/&quot;&gt;Akka.NET&lt;/a&gt;. It runs quietly in the background, connects to the chat applications you already use, and handles the endless little tedious tasks that eat into your day. It’s deliberately simple and predictable, it takes security seriously, and it works just as well with a small model on your own hardware as it does with a big hosted one.&lt;/p&gt;

&lt;p&gt;We covered a bit of the “how we built it” story on a recent &lt;a href=&quot;https://www.youtube.com/watch?v=zdrg987i3vI&quot;&gt;Akka.NET Community Standup&lt;/a&gt;, but this post is the proper introduction: what Netclaw is, why we built it the way we did, and what you can actually do with it today.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/gzfmjzdd7_Y&quot; title=&quot;Introducing Netclaw: Always-on, Autonomous Agent Powered by Akka.NET&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/introducing-netclaw/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Mon, 06 Jul 2026 15:00:00 +0000</pubDate>
        <link>https://petabridge.com/blog/introducing-netclaw/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/introducing-netclaw/</guid>
      </item>
    

      

      

      <item>
        <title>Visualize Your Akka.Streams Graphs with OpenTelemetry</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


8 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;Register one OpenTelemetry source and your traces will show the real shape of your Akka.Streams graph: every stage, in the order it actually runs. No commercial license, no extra wiring. It’s built into &lt;a href=&quot;https://github.com/akkadotnet/akka.net/releases/tag/1.5.66&quot;&gt;Akka.NET as of v1.5.66&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;People have been asking us for this since 2021. This post and its accompanying video walk through why it took so long, how we built it, and what it looks like running against a real production app.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/lUFstRtj5zc&quot; title=&quot;Visualize Your Akka.Streams Graphs with OpenTelemetry&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/akkadotnet-streams-opentelemetry-tracing/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Thu, 18 Jun 2026 14:00:00 +0000</pubDate>
        <link>https://petabridge.com/blog/akkadotnet-streams-opentelemetry-tracing/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/akkadotnet-streams-opentelemetry-tracing/</guid>
      </item>
    

      

      

      <item>
        <title>Why We Removed FluentAssertions from Akka.NET</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


11 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;Back at the very end of March we shipped &lt;a href=&quot;https://github.com/akkadotnet/akka.net/releases/tag/1.5.64&quot;&gt;Akka.NET v1.5.64&lt;/a&gt;. We’ve done a handful of releases since then, but I want to come back to this one specifically, because it contained a change that’s been a long time coming: &lt;strong&gt;we removed FluentAssertions as a dependency from every Akka.NET TestKit package.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you write tests against Akka.NET, this might be a breaking change for you. So let me walk through exactly what changed, why we did it, and what you should do about it.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/id4yJBe48OU?si=1jvQtMgr8mVUHftE&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/why-akkadotnet-remove-fluentassertions/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Wed, 10 Jun 2026 19:12:12 +0000</pubDate>
        <link>https://petabridge.com/blog/why-akkadotnet-remove-fluentassertions/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/why-akkadotnet-remove-fluentassertions/</guid>
      </item>
    

      

      

      <item>
        <title>Case Study: Luware Building Mission-Critical Voice Services with Akka.NET</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


12 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;&lt;img src=&quot;https://petabridge.com/images/2026/luware-case-study/luware-logo.png&quot; alt=&quot;Luware&quot; class=&quot;no-border&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Every so often a customer comes along whose use case is so demanding that it validates every design decision you’ve ever made in the framework. &lt;a href=&quot;https://luware.com/&quot;&gt;Luware&lt;/a&gt; is that customer for us.&lt;/p&gt;

&lt;p&gt;Jason Shave is an Engineering Manager at Luware, where he leads a team of developers working on &lt;strong&gt;Nimbus&lt;/strong&gt;, contact center software that integrates with Microsoft Teams. Luware handles millions of calling minutes per month, serves over 1,000 customers worldwide, and operates 24/7 with zero tolerance for downtime. When I sat down with Jason, I wanted to understand why he picked Akka.NET, how his team uses it, and what the results have looked like in production.&lt;/p&gt;

&lt;p&gt;What follows is that conversation.&lt;/p&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/luware-akkadotnet-case-study/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Wed, 13 May 2026 15:00:00 +0000</pubDate>
        <link>https://petabridge.com/blog/luware-akkadotnet-case-study/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/luware-akkadotnet-case-study/</guid>
      </item>
    

      

      

      <item>
        <title>Managing Long-Running Tasks Inside Akka.NET Actors</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


19 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;Here’s a scenario we hit all the time on &lt;a href=&quot;https://textforge.net/&quot;&gt;TextForge&lt;/a&gt;: a new user signs up, connects their Gmail account, and now we have to pull down their entire mailbox history. For the pro plan, that can be hundreds of thousands of emails. Which translates to tens of thousands of Gmail API round trips, exponential backoff when the API pushes back, intermittent network failures, and tens of minutes (sometimes longer) of continuous work per user. And on top of that, we need to be able to cancel the job cleanly, because the pod hosting that actor might get rebalanced across the cluster, or we might roll a deployment, or the user might disconnect the account mid-sync.&lt;/p&gt;

&lt;p&gt;So the question is: &lt;strong&gt;how can a single Akka.NET actor manage a long-running background job without becoming non-responsive to its own mailbox?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This post (and its accompanying video) walks through the exact pattern we use in TextForge’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MailboxSyncActor&lt;/code&gt;: a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CancellationTokenSource&lt;/code&gt; field, a fire-and-forget &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PipeTo&lt;/code&gt;, and a couple of subtle lifecycle details that will bite you if you skip them.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/cSHQcqeQ4oI&quot; title=&quot;Managing Long-Running Tasks Inside Akka.NET Actors&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/akkadotnet-long-running-tasks/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Mon, 13 Apr 2026 14:00:00 +0000</pubDate>
        <link>https://petabridge.com/blog/akkadotnet-long-running-tasks/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/akkadotnet-long-running-tasks/</guid>
      </item>
    

      

      

      <item>
        <title>How AI Will Transform Open Source Business Models</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


15 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;This is Part 2 of a two-part series.&lt;/strong&gt; &lt;a href=&quot;https://petabridge.com/blog/ai-wont-kill-open-source/&quot;&gt;Part 1&lt;/a&gt; covered why AI is accelerating open source adoption, not killing it. This post examines which business models thrive and which struggle in the AI era. &lt;a href=&quot;https://m.petabridge.com/&quot;&gt;Subscribe to our mailing list&lt;/a&gt; if you haven’t already.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In &lt;a href=&quot;https://petabridge.com/blog/ai-wont-kill-open-source/&quot;&gt;Part 1&lt;/a&gt;, I argued that AI isn’t killing open source - it’s amplifying adoption at unprecedented rates. Akka.NET’s 35% year-over-year download growth in 2025, combined with industry-wide metrics showing 70-87% growth across major package registries, proves that LLMs are recommending and adopting libraries faster than humans ever could.&lt;/p&gt;

&lt;p&gt;But there’s a second story buried in the Tailwind CSS saga that deserves its own analysis: &lt;strong&gt;AI isn’t killing open source - it’s disrupting specific types of open source businesses.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adam Wathan captured this perfectly in &lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957&quot;&gt;his GitHub comment&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Tailwind is growing faster than it ever has and is bigger than it ever has been, and our revenue is down close to 80%.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Read that again. The framework is thriving. The business is struggling. This isn’t a contradiction - it’s the clearest illustration of where AI is creating winners and losers in the open source economy.&lt;/p&gt;

&lt;p&gt;Let me break down what’s actually happening, using both Tailwind’s situation and our own experience at Petabridge as a counter-example.&lt;/p&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/ai-transforms-oss-business-models/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Wed, 14 Jan 2026 13:01:01 +0000</pubDate>
        <link>https://petabridge.com/blog/ai-transforms-oss-business-models/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/ai-transforms-oss-business-models/</guid>
      </item>
    

      

      

      <item>
        <title>AI Won&apos;t Kill Open Source - It Will Amplify It</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


19 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;Earlier this week, &lt;a href=&quot;https://github.com/adamwathan&quot;&gt;Adam Wathan&lt;/a&gt;, the creator of &lt;a href=&quot;https://tailwindcss.com/&quot;&gt;Tailwind CSS&lt;/a&gt;, &lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957&quot;&gt;dropped a bombshell about how AI has impacted his company and its employees&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;the reality is that 75% of the people on our engineering team lost their jobs here yesterday because of the brutal impact AI has had on our business. And every second I spend trying to do fun free things for the community like this is a second I’m not spending trying to turn the business around and make sure the people who are still here are getting their paychecks every month.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;The reaction was swift and predictable. Hot takes flooded in declaring the death of open source, the end of OSS sustainability, and the AI apocalypse that would render libraries and frameworks obsolete. &lt;a href=&quot;https://ghuntley.com/six-month-recap/&quot;&gt;Geoffrey Huntley captured the prevailing narrative perfectly&lt;/a&gt;&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;“AI can generate code, bypassing the need to deal with open-source woes… I’ve found myself using less open source these days… This shift challenges the role of open-source ecosystems.”&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;a href=&quot;https://x.com/Aaronontheweb/status/2009001211647959296&quot;&gt;I had a tweet about the Tailwind situation go viral&lt;/a&gt; and there were dozens of quote tweets and comments echoing the very same. “AI eats open source” is easy to find in abundance online.&lt;/p&gt; &lt;p&gt;Here’s the problem: &lt;strong&gt;everyone is getting this perfectly backwards&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;AI isn’t killing open source. &lt;em&gt;It’s amplifying it to unprecedented levels&lt;/em&gt;. The Tailwind situation isn’t about declining OSS adoption - it’s about a business model that was working great in a world where learning curves were high and documentation was the bottleneck. That world is gone, and the revenue model built on top of it is collapsing. But the underlying Tailwind library? It’s thriving.&lt;/p&gt; &lt;p&gt;Let me show you why the doomsayers are wrong, backed by actual data from our own experience...
              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/ai-wont-kill-open-source/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Thu, 08 Jan 2026 19:31:22 +0000</pubDate>
        <link>https://petabridge.com/blog/ai-wont-kill-open-source/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/ai-wont-kill-open-source/</guid>
      </item>
    

      

      

      <item>
        <title>Migrating from CRUD to CQRS and Event-Sourcing with Akka.Persistence</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


15 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;We’re about a year into the process of completely re-working &lt;a href=&quot;https://sdkbin.com/&quot;&gt;Sdkbin&lt;/a&gt; to better support our needs here at Petabridge and, eventually, other third-party software vendors.&lt;/p&gt;

&lt;p&gt;Sdkbin was originally built on an extremely flimsy CRUD architecture that violates most of my personal design preferences - you can &lt;a href=&quot;https://aaronstannard.com/sdkbin-rewrite/&quot;&gt;read about the history behind that here&lt;/a&gt;. But to summarize, I tend to use the following heuristics when building software:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/high-optionality-programming-pt1/&quot;&gt;Prefer optionality-preserving designs&lt;/a&gt;&lt;/strong&gt; - make sure your design decisions can be reversed or altered when things inevitably change.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Use as few moving parts as possible&lt;/strong&gt; - &lt;a href=&quot;https://petabridge.com/blog/actorref-tell-ask/&quot;&gt;most of Akka.NET is constructed this way&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;No magic&lt;/strong&gt; - if nothing magically works, then nothing magically breaks either.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Ensure that coupling happens only where it’s necessary&lt;/strong&gt; - coupling usually needs to happen in your integration layer (i.e. your UI or HTTP API.) Your accounting system should probably not be coupled to your payments system.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sdkbin’s original CRUD design violated all of these principles:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Used hard deletes, destroying data with no ability to recover or audit (impossible to reverse);&lt;/li&gt;
  &lt;li&gt;Relied heavily on AutoMapper-powered generic repositories (magic with lots of moving parts); and&lt;/li&gt;
  &lt;li&gt;Was highly coupled throughout - Stripe payment events served double-duty as invoices, for instance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We’ve fixed a ton of these issues already, and one of the most important tools we’re using is &lt;a href=&quot;https://petabridge.com/blog/intro-to-persistent-actors/&quot;&gt;Akka.Persistence&lt;/a&gt;. We’ve also made some significant improvements to Akka.Persistence in recent releases that made it &lt;em&gt;much&lt;/em&gt; easier for us to accomplish our ambitious goals with Sdkbin.&lt;/p&gt;

&lt;p&gt;Let me show you what we did.&lt;/p&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/crud-to-cqrs-akka-persistence/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Tue, 30 Dec 2025 18:00:00 +0000</pubDate>
        <link>https://petabridge.com/blog/crud-to-cqrs-akka-persistence/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/crud-to-cqrs-akka-persistence/</guid>
      </item>
    

      

      

      <item>
        <title>The Worst Security Vulnerability in Akka.NET - And How to Fix It</title>
        <author>hi@petabridge.com</author>
        <description>
            
        &lt;p&gt;&lt;em&gt;


15 minutes to read
&lt;/em&gt;&lt;/p&gt;
      
            
              &lt;p&gt;In October 2025, we disclosed the most critical security vulnerability ever found in &lt;a href=&quot;https://getakka.net/&quot;&gt;Akka.NET&lt;/a&gt;: &lt;strong&gt;CVE-2025-61778&lt;/strong&gt;. This vulnerability affects Akka.Remote’s TLS implementation - specifically, we were supposed to implement mutual TLS (mTLS), but we didn’t. The server never validated client certificates, meaning anyone who could reach your Akka.Remote endpoint could potentially join your cluster without any authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The immediate action you should take: upgrade to &lt;a href=&quot;https://github.com/akkadotnet/akka.net/releases/tag/1.5.56&quot;&gt;Akka.NET v1.5.56&lt;/a&gt; or later.&lt;/strong&gt; The vulnerability has been fully patched in these versions.&lt;/p&gt;

&lt;p&gt;In this post, we’ll cover the nature of this vulnerability, who was affected, how we fixed it, and - most importantly - security best practices for securing your Akka.NET applications going forward.&lt;/p&gt;

&lt;p&gt;This vulnerability was discovered by one of our &lt;a href=&quot;https://petabridge.com/services/support/&quot;&gt;Production Support&lt;/a&gt; customers during a security audit. Within 2-3 weeks of being notified, we shipped four patches (v1.5.52 through v1.5.56) to address the issue. This is exactly the kind of critical response our support customers receive - and the entire Akka.NET community benefits from their vigilance.&lt;/p&gt;


              
        &lt;p&gt;
            &lt;strong&gt;&lt;a href=&quot;https://petabridge.com/blog/akka-net-tls-vulnerability/&quot;&gt;Click here to read the full article&lt;/a&gt;&lt;/strong&gt;.
        &lt;/p&gt;
      
            
            
        </description>
        <pubDate>Wed, 26 Nov 2025 18:00:00 +0000</pubDate>
        <link>https://petabridge.com/blog/akka-net-tls-vulnerability/</link>
        <guid isPermaLink="true">https://petabridge.com/blog/akka-net-tls-vulnerability/</guid>
      </item>
    
  </channel>
</rss>