Managed DevOps Pools can feel instant or painfully slow, and the difference is mostly configuration. A walkthrough of agent state, standby modes, prediction preferences and image buffers, with Terraform, ARM and CLI examples, a cost-aware recommendation for each team shape and lessons from cascading pipelines and fan-out deployments.
Cancellation is the steady state for inference gateways, not the edge case, and .NET 11 targets exactly that pain: runtime async collapses per-boundary exception rethrows, JIT deabstraction cuts allocations, and bounds-check elimination speeds up tokenization loops.
None of it makes a slow model call faster, but it buys flatter tail latency and fewer instances for the same throughput.
.NET 11’s JIT ships real codegen wins: guarded devirtualization, wider escape analysis, a smaller delegate layout, and sharper bounds-check elimination.
All of them are conditional on shapes the JIT can prove, not blanket speedups; here is what changed, why, and how to check whether your hot path qualifies.
Closed hierarchies let the compiler prove a switch over a class tree is exhaustive, no discard arm required. Genuinely useful for internal domain models, and something to think through carefully before using it in a public library API, where adding a subtype breaks every consumer’s build.
C# 15 preview ships union types with real compiler-checked exhaustiveness, no more hand-rolled
sealed hierarchies for a Result type. The catch: it is a union of pre-existing types, not
F#-style discriminated cases, and value-type cases box unless you write non-boxing boilerplate
yourself. The quieter sibling feature, closed hierarchies, may be the safer bet for enterprise
teams right now.