ML.NET inference pipelines in .NET Aspire with Redis caching A production writeup details how an ML.NET inference service running in .NET Aspire on Azure Container Apps was tuned to keep p99 latency under 50 ms at 10k requests per second by combining static inference sessions, Redis KV caching, gRPC streaming for model blobs, batched inference with a 5 ms sliding window, and KEDA-driven autoscaling on Service Bus queue depth. The author reports that a prior rollout to a 50-million-user platform saw a 70 ms p99 spike during a flash sale that cut checkout completion by 4%, and recommends keeping a small ONNX model local at roughly 0.02 cents per call while routing only the top 5% of requests to Azure OpenAI at about 0.50 cents per call. Quick Answer ML.NET inference pipelines in .NET Aspire: By tuning plumbing—static inference sessions, Redis caching, gRPC streaming, batching, and KEDA scaling—ML.NET pipelines in .NET Aspire stay under 50 ms p99 at 10 k RPS. Latency Breakdown in Production Pipelines In a production AI service that pushes ML.NET models through .NET Aspire , the classic 300‑ms stall is usually not the model itself but the plumbing that gets data from an HTTP request to the model and back. 5 ms of request parsing, 10 ms of message queue latency, 20 ms of Redis lookup, 15 ms of model load, and 30 ms of inference already add up. When the target is under 50 ms at 10 k RPS , the margin disappears, and the service feels sluggish. Real‑World Example Consider a fraud‑detection microservice that receives a payment Event https://dev.to/blog/event-driven-ai-orchestration-with-kafka-in-net-a-production-blueprint-20261020 , enriches it with user context, and returns a risk score. The service runs in Azure