// FREE LIVE WEBINAR

FREE · 60 MIN Friday, October 30, 2026 · 11:00 AM Central 16:00 UTC

You Should Probably Be Using IAsyncEnumerable

Streaming architectures in .NET backpressure akka.streams

A Task is a value contract: one result, delivered once, at the end. Long-running work isn’t a value. It’s a process. This session is about the architecture you need once you stop pretending otherwise.

Aaron StannardYour host · Creator of Akka.NET · CEO, Petabridge

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

Creator of Akka.NET, CEO of Petabridge

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

Is that Task<T> dead, or just slow?

A job has been running for twenty minutes. Task has three states (pending, completed, faulted), and “alive and progressing” and “hung forever” are both pending. Every timeout you’ve wrapped around a long call is a guess.

→ A stream tells you while it runs.

02 // VOLUME

Returning a huge result set from Task<T>?

Buffer it all and hope, or page manually and rebuild state management by hand. A stream carries results as they’re produced and lets the consumer decide how much to take.

→ Stream it instead.

03 // RELATIONSHIPS

Polling another service for results?

Polling is what you write when you have no way to be told. Subscribe instead, and the question becomes “are you still there?” rather than “is it done yet?”

→ Let the server push them to you.

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>, all 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