OpenTelemetry in .NET: from code to Grafana with Jaeger, Prometheus and Loki
OpenTelemetry in .NET 10 with the Collector, Jaeger, Prometheus, Loki and Grafana: from the deploy that made checkout slow to the guilty span, with real numbers.
Software architecture, .NET, applied AI and cloud, straight from someone who builds. All the texts were also published on LinkedIn; the videos are on the ForgeTechPit YouTube channel; subscribe to the RSS feed to follow along here.
OpenTelemetry in .NET 10 with the Collector, Jaeger, Prometheus, Loki and Grafana: from the deploy that made checkout slow to the guilty span, with real numbers.
A deploy makes checkout slow: how a metric by version, a log with the trace id and a distributed trace in .NET 10 lead from the alert to the cause.
Streaming Claude API responses with Server-Sent Events and letting the model call C# code (tool use) in ASP.NET Core 10, with three pitfalls and xUnit tests.
Preparing a .NET 10 API for a predictable traffic peak: warm cache, concurrency limit with fast rejection, deadlines, a bounded queue and a load test ramp, measured before and after.
The same AI task in .NET 10 with the OpenAI SDK, Microsoft.Extensions.AI and Semantic Kernel: function calling, provider swap, telemetry, configuration pitfalls and a test.
How to refund a paid order that failed in a microservices flow using a saga in .NET 10, with idempotent retries, manual review and a five-scenario runnable demo.
How to use Redis with the cache-aside pattern in .NET 10 microservices to cut database queries, with measured pitfalls: stale data, security, stampede and Redis outages.
How the order of middleware in Program.cs silently changes authentication, CORS and error handling in ASP.NET Core, with three rules and a runnable five-pipeline demo.
How to choose between C4, UML and ArchiMate by starting from the architecture question, with all three views generated from a single tested C# model.
A measured walkthrough of a .NET 10 API on Kubernetes: multi-stage chiseled image, startup/liveness/readiness probes, graceful shutdown, Kustomize and a local kind cluster.
A step-by-step RAG assistant in .NET 10 that answers from your own documents with citations, access control and prompt-injection defenses, running locally on Ollama or on Azure AI Foundry.
The real difference between fault tolerance and resilience in .NET, with Polly v8, a load balancer and four failure scenarios with output.
How to protect your API with the built-in ASP.NET Core rate limiter in .NET 10: four algorithms, per-client partitions, a standard 429 response, and production pitfalls.
How to expose tools to AI models with the Model Context Protocol in .NET 10, with a server, a client and the mistakes to avoid.
A side-by-side look at RabbitMQ queues and Kafka event logs in .NET, with runnable C# code, production pitfalls and guidance on when to choose each.
How to keep data consistent across microservices without a distributed transaction, using sagas, compensations and idempotency in .NET.
How to build a modular monolith in .NET 10: modules with a public contract, one schema per module, event-based communication and architecture tests.
How the dotnetup preview installs and updates .NET SDKs and runtimes without administrator rights, how channels map to global.json, and when to avoid it.
How to combine API Gateway with YARP and BFF in .NET 10 to give each client the right data, with centralized authentication and rate limiting.
What goes in each file and folder of a Claude Code project: CLAUDE.md, .claude/, .mcp.json, skills, agents and permissions.
Part 2: kicking off a Minimal API in .NET 10 with tests, from the plan-mode request to the review skill before the commit.
Part 1: installing Claude Code, writing the CLAUDE.md, setting permissions and modes, mastering the ask, iterate and confirm rhythm, and creating skills.
Manual DTO mapping with invariants, nested objects, safe PATCH, feature-based organization and xUnit tests.
C# records for Value Objects, DTOs and messages: immutability, value equality, with and pattern matching.
Organizing code by end-to-end features instead of layers: cohesion, looser coupling and incremental evolution.
Minimal APIs in ASP.NET Core: routing, binding, validation, comparison with Controllers and when simplicity becomes a trap.
How monoliths and microservices work day to day, with operational costs, limitations and when each approach makes sense.
Store in UTC and display in local time: TimeProvider, containers with TZ=Etc/UTC and practices for Azure, AWS and Kubernetes.
When Clean Architecture protects business rules and when it only adds complexity, with the dependency rule in practice.
A tour of .NET 10 (LTS) and C# 14: JIT, NativeAOT, post-quantum cryptography, the field keyword, extension members and more.
The three dependency injection lifetimes in .NET explained with a coffee shop: disposable cups, waiter and espresso machine.