#633 – November 08, 2026
queues absorb traffic spikes by storing excess work temporarily but they can't speed up the work
A queue is a shock absorber, not a pump
7 minutes by Irina Dominte
Queues absorb traffic spikes by storing excess work temporarily, but they cannot increase how fast work gets done. If your average load already exceeds consumer capacity, the queue just grows endlessly. Watch the trend in queue depth and message age, not just the size at one moment. When the average is too high, your only real options are adding capacity or rejecting excess work before it enters the queue.
See AI Agents at Work in Rider Before the Upcoming 2026.3 Release
sponsored by Jetbrains
Rider 2026.3 is arriving soon with day-one support for .NET 11 and built-in JetBrains Air. In this nine-minute demo from JetBrains .NET Day Online 2026, Matt Ellis assigns a task to Codex, verifies the output using Rider’s tests and debugger, and routes the agent back for another pass.
C# 15 collection expression arguments: What's new vs C# 12 and 13
3 minutes by Laurent Kempé
Laurent explains the new collection expression arguments introduced in C# 15. The with(...) syntax allows developers to pass constructor or factory arguments directly inside collection expressions, making initialization cleaner and more readable. It builds on C# 12 and C# 13 features, with support for options such as capacity and comparers, while keeping some limitations for arrays, spans, and dynamic arguments.
Advanced .NET garbage collection: Measure before you tune
24 minutes by Abdul Rahman
Learn how to measure and reduce allocation pressure, see what .NET 10 escape analysis can do, control object lifetimes with disposal and event cleanup, and evaluate server GC, DATAS, LOH compaction, and no-GC regions without tuning by guesswork.
Runtime async benchmarks: .NET 10 vs .NET 11
7 minutes by Gérald Barré
Gerald shares benchmarks comparing .NET 10 and .NET 11, showing that runtime async cuts allocations dramatically for async chains that never suspend. A 20-layer chain drops from 1,512 bytes to 72 and runs over three times faster. Chains that do suspend also improve, though shallow suspensions use slightly more memory. Async streams get about 20% faster. These are microbenchmarks on a single machine running a release candidate, so real-world results will vary.
Spying on cursor: Agent hooks, payloads and a simple observer
15 minutes by Christophe Nasarre
Cursor exposes 21 hook points that fire when specific events occur during an AI agent session, such as submitting a prompt, calling a tool, or starting a subagent. Each hook receives a JSON payload and can return a response that blocks or modifies agent behavior. By writing a passive hook that always returns an empty response and forwards payloads to a viewer over a named pipe, you can observe what the agent does without interfering with it. The payloads can contain sensitive data, including prompts, file contents, and shell output.
And the most popular article from the last issue was: