<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>astrivo Blog</title>
    <link>https://www.astrivo.io/blog.html</link>
    <description>Practical, hands-on writing about .NET 10, C#, AI integration, AWS, event-driven architecture, and Azure.</description>
    <language>en-us</language>
    <lastBuildDate>Tue, 14 Jul 2026 00:00:00 +0000</lastBuildDate>
    <item>
      <title>NoSQL in .NET: Choosing Between DynamoDB, Cosmos DB, and MongoDB</title>
      <link>https://www.astrivo.io/blog/nosql-dotnet-dynamodb-cosmosdb-mongodb.html</link>
      <guid>https://www.astrivo.io/blog/nosql-dotnet-dynamodb-cosmosdb-mongodb.html</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate>
      <description>Partition key design, consistency defaults, and query flexibility compared across DynamoDB, Cosmos DB, and MongoDB for .NET teams.</description>
    </item>
    <item>
      <title>The Saga Pattern: Managing Distributed Transactions Without 2PC</title>
      <link>https://www.astrivo.io/blog/saga-pattern-distributed-transactions-dotnet.html</link>
      <guid>https://www.astrivo.io/blog/saga-pattern-distributed-transactions-dotnet.html</guid>
      <pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate>
      <description>Choreography vs orchestration, compensating transactions, and idempotency -- how to manage transactions that span services without two-phase commit.</description>
    </item>
    <item>
      <title>CQRS in .NET: When Command/Query Separation Actually Pays Off</title>
      <link>https://www.astrivo.io/blog/cqrs-dotnet-when-it-pays-off.html</link>
      <guid>https://www.astrivo.io/blog/cqrs-dotnet-when-it-pays-off.html</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
      <description>What CQRS actually requires (and doesn't), a lightweight same-database version most teams should start with, and when separate read/write stores are worth the eventual consistency cost.</description>
    </item>
    <item>
      <title>CAP Theorem and Consistency Models: A Practical Guide for .NET Engineers</title>
      <link>https://www.astrivo.io/blog/cap-theorem-consistency-models-dotnet.html</link>
      <guid>https://www.astrivo.io/blog/cap-theorem-consistency-models-dotnet.html</guid>
      <pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate>
      <description>CAP theorem, PACELC, and the consistency models (strong, eventual, causal, session) that actually show up in DynamoDB, Cosmos DB, and SQL -- explained for day-to-day design decisions.</description>
    </item>
    <item>
      <title>C# 14: The New Features Worth Adopting</title>
      <link>https://www.astrivo.io/blog/csharp-14-features.html</link>
      <guid>https://www.astrivo.io/blog/csharp-14-features.html</guid>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <description>The field keyword, extension members, and null-conditional assignment -- what's genuinely worth adopting from C# 14.</description>
    </item>
    <item>
      <title>Native AOT in .NET 10: When It's Worth It</title>
      <link>https://www.astrivo.io/blog/native-aot-dotnet10.html</link>
      <guid>https://www.astrivo.io/blog/native-aot-dotnet10.html</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <description>Startup time, memory, and binary size wins from Native AOT in .NET 10 -- and the reflection and plugin-loading trade-offs that come with it.</description>
    </item>
    <item>
      <title>LINQ Performance Gotchas Every .NET Engineer Should Know</title>
      <link>https://www.astrivo.io/blog/linq-performance-gotchas.html</link>
      <guid>https://www.astrivo.io/blog/linq-performance-gotchas.html</guid>
      <pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate>
      <description>Multiple enumeration, Count() vs .Count, deferred execution closures, and client-side evaluation -- the LINQ mistakes we see most often in code review.</description>
    </item>
    <item>
      <title>Debugging .NET Production Issues: dotnet-trace, dotnet-counters, and dotnet-dump</title>
      <link>https://www.astrivo.io/blog/dotnet-diagnostics-tracing-debugging.html</link>
      <guid>https://www.astrivo.io/blog/dotnet-diagnostics-tracing-debugging.html</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate>
      <description>Using dotnet-trace, dotnet-counters, and dotnet-dump to diagnose CPU, memory, and hang issues on a live .NET process with zero code changes.</description>
    </item>
    <item>
      <title>Writing Unit Tests That Actually Catch Bugs in .NET</title>
      <link>https://www.astrivo.io/blog/effective-unit-testing-dotnet.html</link>
      <guid>https://www.astrivo.io/blog/effective-unit-testing-dotnet.html</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate>
      <description>Test data builders, what actually deserves a mock, and why coverage percentage isn't the goal -- practical unit testing habits for .NET teams.</description>
    </item>
    <item>
      <title>Adding AI Features to .NET Apps with Microsoft.Extensions.AI and Azure OpenAI</title>
      <link>https://www.astrivo.io/blog/ai-integration-dotnet-apps.html</link>
      <guid>https://www.astrivo.io/blog/ai-integration-dotnet-apps.html</guid>
      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>
      <description>Adding chat, embeddings, retrieval-augmented generation, and function calling to .NET apps with Microsoft.Extensions.AI and Azure OpenAI.</description>
    </item>
    <item>
      <title>Using AI to Accelerate Legacy .NET Modernization</title>
      <link>https://www.astrivo.io/blog/ai-assisted-legacy-dotnet-modernization.html</link>
      <guid>https://www.astrivo.io/blog/ai-assisted-legacy-dotnet-modernization.html</guid>
      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>
      <description>Where AI tooling genuinely speeds up legacy .NET modernization, and where we still don't trust it without a human in the loop.</description>
    </item>
    <item>
      <title>gRPC and Minimal APIs in .NET 10: Picking the Right Interface</title>
      <link>https://www.astrivo.io/blog/grpc-minimal-apis-dotnet10.html</link>
      <guid>https://www.astrivo.io/blog/grpc-minimal-apis-dotnet10.html</guid>
      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
      <description>Minimal APIs for public and browser-facing endpoints, gRPC for internal service-to-service calls -- how to run both from the same ASP.NET Core host.</description>
    </item>
    <item>
      <title>Distributed Tracing in .NET with OpenTelemetry</title>
      <link>https://www.astrivo.io/blog/opentelemetry-distributed-tracing-dotnet.html</link>
      <guid>https://www.astrivo.io/blog/opentelemetry-distributed-tracing-dotnet.html</guid>
      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
      <description>Wiring up OpenTelemetry in .NET to trace requests across service boundaries, correlate traces with logs, and sample sensibly.</description>
    </item>
    <item>
      <title>API Versioning in ASP.NET Core: Strategies and Trade-offs</title>
      <link>https://www.astrivo.io/blog/api-versioning-aspnet-core.html</link>
      <guid>https://www.astrivo.io/blog/api-versioning-aspnet-core.html</guid>
      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>
      <description>URL segment, query string, and header-based API versioning strategies in ASP.NET Core, implemented with Asp.Versioning.</description>
    </item>
    <item>
      <title>Feature Flags in .NET with Microsoft.FeatureManagement</title>
      <link>https://www.astrivo.io/blog/feature-flags-dotnet.html</link>
      <guid>https://www.astrivo.io/blog/feature-flags-dotnet.html</guid>
      <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
      <description>Shipping code dark and rolling it out gradually with Microsoft.FeatureManagement, targeting filters, and Azure App Configuration.</description>
    </item>
  </channel>
</rss>
