Guard conversation updates with a revision check

Reject stale chat-history writes when another turn changes the conversation during generation.

October 26, 2026 · 3 min · Lukas Walter

Your AI System Needs Backpressure

Use admission control, bounded waiting, and shared provider limits to keep slow AI work from turning overload into an outage, with C# examples.

October 11, 2026 · 11 min · Lukas Walter

Bound in-process queues with Channel<T>

Limit buffered work with a bounded channel, then decide whether producers should wait, reject, or drop work when it fills.

October 6, 2026 · 3 min · Lukas Walter

Fallback Models Are Not Transparent Replacements

Qualify fallback models against the feature contract, define eligible failures, bound attempts, and make reduced behavior visible to callers.

October 4, 2026 · 16 min · Lukas Walter

Graceful Degradation for AI Features

How to keep an AI-enabled product useful when a dependency fails, without hiding reduced capability or returning unsafe substitutes.

September 27, 2026 · 14 min · Lukas Walter

What Should You Actually Evaluate?

Choose AI evaluation criteria from the feature contract: answer quality, retrieval, tool effects, safety, reliability, latency, and cost.

September 13, 2026 · 13 min · Lukas Walter

Review EF Core migrations as database changes

Review generated EF Core operations, inspect the deployment SQL, and check application compatibility before applying schema changes.

September 11, 2026 · 2 min · Lukas Walter

Treat the model finish reason as a control signal

Check why generation stopped before accepting model output, and give incomplete responses an explicit application outcome.

September 9, 2026 · 2 min · Lukas Walter

Persist ingestion checkpoints at source boundaries

Track progress per consumer and source ordering boundary, and advance each checkpoint only after the corresponding ingestion work succeeds.

September 8, 2026 · 4 min · Lukas Walter

Treat provider throttling as a shared capacity signal

Let one throttling response reduce pressure from every caller sharing the affected capacity pool.

September 7, 2026 · 3 min · Lukas Walter