// FREE WEBINAR // STREAMING ARCHITECTURES

You Should Probably Be Using IAsyncEnumerable

Task is a value contract: one result, delivered once, at the end. Long-running work is not a value — it is a process. This session is about the architecture you need once you stop pretending otherwise.

ref: session

// WHEN

Friday, October 30, 2026

11:00 AM Central · 5:00 PM CEST · 16:00 UTC

// FORMAT

60 minutes, live

Interactive Q&A throughout. Recording sent to every registrant.

// COST

Free

No support plan required. No product to buy at the end.

// HOSTED BY

Aaron Stannard

CEO & Founder, Petabridge — creator of Akka.NET

ref: the_problem

// THE_PROBLEM

Three questions Task cannot answer

These are not edge cases. They are the ordinary shape of production work that outlives a request, and most teams solve them by bolting polling loops and side-channel progress APIs onto a return type that was never designed to carry the answer.

01 // LIVENESS

A job has been running for twenty minutes. Is it working, or is it dead? Task has three states — pending, completed, faulted — and “alive and progressing” and “hung forever” are both pending. Every timeout you have wrapped around a long call is a confession that you could not tell them apart.

02 // VOLUME

How do you return a large result set from a Task<Response>? Buffer it all and hope, or page manually and rebuild state management by hand. A stream carries results as they are produced and lets the consumer decide how much to take.

03 // RELATIONSHIPS

How do service A and service B hold a long-running relationship without polling? Polling is what you write when you have no way to be told. Subscribe instead, and the ask becomes “are you still there?” rather than “is it done yet?”

ref: we_will_cover

// AGENDA

What we will cover

Real code

Progress you can render

A 20-minute re-indexing job streaming live state over Server-Sent Events, where a late subscriber’s first element is the current state. A stream can say “here’s where we are”; a Task cannot.

The core

Two timers, two failures

An AI agent that runs a liveness deadline and a separate no-progress deadline over its own token stream — so “nothing arrived, it is dead” and “heartbeats arriving, zero real output” become different states your code can name and act on.

Where it breaks

Producers with too much to say

The honest part. IAsyncEnumerable backpressures the consumer and barely touches the producer — and Channel<T> only tries, weakly. We look at what happens when the producer is an API, a queue, or the physical world and cannot be slowed at all.

// YOU_LEAVE_WITH

A working decision rule for when Task<T> is genuinely the right answer and when it is costing you, plus a concrete read on where IAsyncEnumerable, ChannelReader<T>, and Akka.Streams each belong in a .NET system. This is an architecture talk, not a feature tour — and it assumes no prior Akka.NET experience.

ref: who_it_is_for

// AUDIENCE

Who this is for

STRONG FIT

Experienced .NET developers and architects who own services with long-running work behind them — imports, exports, reconciliations, agent runs, device fleets, anything a user has ever asked “is this still going?” about.

ALSO USEFUL

Teams evaluating streaming designs, or already using IAsyncEnumerable or Channel<T> and finding the edges. No Akka.NET knowledge is assumed; the framework appears where it earns its place.

NOT A FIT

Brand-new-to-async programmers, or anyone looking for a general Akka.Cluster or persistence course. This one has a specific thesis and stays on it.

ref: faq

// FAQ

No. The talk starts from Task, IAsyncEnumerable, and Channel<T> — plain .NET. Akka.Streams only enters once the limits of the language-level tools are already visible, which is the honest order to introduce it in.
Yes. No support plan, no trial, no card. We are Petabridge, we maintain Akka.NET, and teaching this well is how we meet people working on exactly the problems we solve.
Registrants get the recording afterwards, so the live session is about the questions you can ask rather than the content you might miss.
16:00 UTC on Friday, October 30, 2026. That is 11:00 AM US Central, 12:00 PM US Eastern, 5:00 PM Central European Summer Time, and 9:30 PM India Standard Time.
It is an hour of architecture with a registration form. There is a link to our newsletter at the end, and if you want to talk about your own system after, that is what the Q&A is for.
ref: register

Friday, October 30 · 11:00 AM Central

Sixty minutes, live, free. Bring the job that nobody can tell the status of.

// STAY_CONNECTED