Skip to content

[AMPLIFICATION] - Building a Distributed Job Scheduler with Akka.NET #399

Description

@Aaronontheweb

Are you a .NET Foundation Member
Yes

Is this for promoting a .NET Foundation Project
Yes — Akka.NET

Please describe the content.
This practical Akka.NET guide shows how to design a persistent, horizontally scalable scheduler for long-running distributed jobs.

It explains why Akka.Cluster.Sharding and Microsoft Orleans are not ideal for this workload: jobs should be placed according to available capacity, must recover after worker failures, and should not be interrupted or restarted just because the cluster scales. The article walks through a scheduler design that keeps running work stable while assigning new work intelligently as capacity changes.

This is useful for .NET developers building reliable background-processing, batch, report-generation, or other long-running distributed systems with Akka.NET.

URL of the content
https://petabridge.com/blog/akkadotnet-distributed-job-scheduler/?utm_source=dotnetfoundation&utm_medium=referral&utm_campaign=akka_net_distributed_job_scheduler_2026_07&utm_content=dotnet_foundation_amplification_issue

Copy for the content

Imagine you have to schedule a big burst of data-intensive jobs in short order. How do you achieve this with minimal fuss? In this post we show how to use Akka.NET to achieve it.

Date requested
August 24, 2026

Channel requested
X/Twitter
LinkedIn
Facebook

Additional context
The post includes an open-source proof of concept built around a real customer work-distribution problem. It is developer education focused, with concrete guidance on Akka.Cluster, Akka.Persistence, failure recovery, load-aware job placement, and horizontal scaling.

Suggested visual: live scheduler dashboard GIF
https://petabridge.com/images/2026/distributed-job-scheduler/job-scheduler-dashboard.gif

The GIF shows capacity-aware job distribution across three worker nodes, live progress updates, queued work, and completed jobs.

Other supporting diagrams:
https://petabridge.com/images/2026/distributed-job-scheduler/sharding-stops-the-job.png
https://petabridge.com/images/2026/distributed-job-scheduler/three-ways-to-distribute-work.png
https://petabridge.com/images/2026/distributed-job-scheduler/actor-hierarchy.png
https://petabridge.com/images/2026/distributed-job-scheduler/message-flow.png

The post also links to the YouTube video I made on the subject plus our GitHub repo containing the source.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions