Streaming data without loading everything into memory

#609 – May 24, 2026

IAsyncEnumerable lets you process large datasets one item at a time instead of loading everything into memory

IAsyncEnumerable: Streaming data without loading everything into memory
7 minutes by Adrian Bailador

Streaming data with IAsyncEnumerable lets you process large datasets one item at a time instead of loading everything into memory at once. This works well with Entity Framework queries and HTTP responses. Memory usage drops significantly compared to fetching all records upfront, and your app stays responsive under load. Start with simple yield return patterns, then apply them to database reads and API calls.

C# finally gets union types
12 minutes by Andrew Lock

Unions are one of those features that have been requested for years, and in .NET 11 (or rather, C# 15) they're finally here. In this post Andrew describes what that support looks like, how you can use them, how they're implemented, and how you can implement your own custom types.

Zstandard compression in .NET 11
2 minutes by Steven Giesel

Steven introduces Zstandard compression support in .NET 11 through the new ZstandardStream API. He explains how Zstd provides fast and efficient compression, similar to existing formats like GZip and Brotli. He also covers new APIs, quality settings, ASP.NET Core integration, and dictionary compression for improving performance when compressing many small and similar files.

Understanding IHostedService & BackgroundService in .NET 10
17 minutes by Mukesh Murugan

Mukesh explains the differences between IHostedService and BackgroundService in .NET 10 using simple examples and real production issues. He compares their lifecycle, usage patterns, and common mistakes developers face in background processing. His guide also shows when to use tools like Hangfire or Quartz.NET instead of hosted services, helping developers choose the right solution for reliable, scalable background tasks in ASP.NET Core applications.

Implementing the Inbox pattern for reliable message consumption
6 minutes by Milan Jovanović

Milan describes how the Inbox pattern improves reliable message consumption by preventing duplicate processing in event-driven systems. Messages are first stored in a database, where duplicates are ignored, and then processed asynchronously. This approach supports retries, scalability, and fault tolerance while ensuring each message is handled safely and consistently.

And the most popular article from the last issue was:

newsletters