<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Aloknecessary – Architecture Blog</title>
  <link href="https://aloknecessary.in/feed.xml" rel="self"/>
  <link href="https://aloknecessary.in/"/>
  <updated>2026-08-04T07:28:00+00:00</updated>
  <id>https://aloknecessary.in/</id>

  
  

  
  <entry>
    <title>Multi-Cluster ArgoCD Architecture: Hub-and-Spoke vs. Per-Cluster, Done Right</title>
    <link href="https://aloknecessary.in/blogs/multi-cluster-argocd-architecture/"/>
    <id>https://aloknecessary.in/blogs/multi-cluster-argocd-architecture/</id>
    <updated>2026-07-31T00:00:00+00:00</updated>
    <summary type="html">Where does ArgoCD live when you go from 1 cluster to 15? Hub-and-spoke vs. ArgoCD-per-cluster, EKS and AKS cluster registration mechanics, and a decision framework tied to team topology and compliance boundaries.</summary>
  </entry>
  

  
  <entry>
    <title>GitHub Actions OIDC: Eliminating Long-Lived Credentials from Your CI/CD Pipeline</title>
    <link href="https://aloknecessary.in/blogs/github-actions-oidc/"/>
    <id>https://aloknecessary.in/blogs/github-actions-oidc/</id>
    <updated>2026-07-27T00:00:00+00:00</updated>
    <summary type="html">OpenID Connect eliminates long-lived CI/CD credentials at the architectural level. This post covers the full implementation for AWS and Azure - OIDC provider setup, trust policy scoping, per-job role architecture, reusable workflow federation, the migration path from static secrets, and the audit trail that stored credentials structurally cannot provide.</summary>
  </entry>
  

  
  <entry>
    <title>Cloud Security Architecture: From Shared Responsibility to Zero Trust</title>
    <link href="https://aloknecessary.in/blogs/cloud-security-architecture/"/>
    <id>https://aloknecessary.in/blogs/cloud-security-architecture/</id>
    <updated>2026-07-21T00:00:00+00:00</updated>
    <summary type="html">Cloud security is not a layer you add after the architecture is designed — it is a set of architectural decisions made at the same time as resilience, cost, and modernisation. This post covers shared responsibility boundaries, IAM least-privilege at scale, secrets management, network segmentation, and zero-trust for Kubernetes workloads.</summary>
  </entry>
  

  
  <entry>
    <title>Embedding Model Selection for Production: The Decision Nobody Documents</title>
    <link href="https://aloknecessary.in/blogs/embedding-model-selection/"/>
    <id>https://aloknecessary.in/blogs/embedding-model-selection/</id>
    <updated>2026-07-17T00:00:00+00:00</updated>
    <summary type="html">Every RAG architecture diagram has a box labeled &apos;embed.&apos; Almost nobody documents how that box&apos;s contents got chosen, and almost everybody regrets the choice within eighteen months. This post is the decision framework that choice deserves.</summary>
  </entry>
  

  
  <entry>
    <title>Cloud Cost Architecture: Engineering FinOps Into the System, Not Onto It</title>
    <link href="https://aloknecessary.in/blogs/cloud-cost-architecture/"/>
    <id>https://aloknecessary.in/blogs/cloud-cost-architecture/</id>
    <updated>2026-07-13T00:00:00+00:00</updated>
    <summary type="html">Cost is an architectural concern, not a finance concern. This post covers the decisions that determine your cloud bill before it arrives.</summary>
  </entry>
  

  
  <entry>
    <title>Multi-AZ by Default: When High Availability Costs More Than the Downtime It Prevents</title>
    <link href="https://aloknecessary.in/blogs/multi-az-by-default/"/>
    <id>https://aloknecessary.in/blogs/multi-az-by-default/</id>
    <updated>2026-07-08T00:00:00+00:00</updated>
    <summary type="html">Multi-AZ doubles your database cost. That premium requires a business case, not a default. This post covers what Multi-AZ actually protects against, when Single-AZ with fast restore is the right answer, and a decision framework that ties availability investment to actual downtime cost.</summary>
  </entry>
  

  
  <entry>
    <title>Modernising the Lifted Workload: The Architectural Decisions That Separate Cloud-Native from Cloud-Hosted</title>
    <link href="https://aloknecessary.in/blogs/modernising-the-lifted-workload/"/>
    <id>https://aloknecessary.in/blogs/modernising-the-lifted-workload/</id>
    <updated>2026-07-03T00:00:00+00:00</updated>
    <summary type="html">Kubernetes does not make your architecture better automatically. This post covers the graduation path from &apos;it&apos;s running on VMs&apos; to genuinely cloud-native.</summary>
  </entry>
  

  
  <entry>
    <title>GraphRAG vs. RAG: When Knowledge Graphs Earn Their Complexity</title>
    <link href="https://aloknecessary.in/blogs/graph-rag-vs-rag/"/>
    <id>https://aloknecessary.in/blogs/graph-rag-vs-rag/</id>
    <updated>2026-06-29T00:00:00+00:00</updated>
    <summary type="html">Vector search tells you which chunks are similar to your query. GraphRAG tells you how entities in your corpus relate to each other. This post covers when that distinction matters, the benchmark evidence, how the 2024 cost problem got solved, and a decision framework for choosing between flat retrieval and graph retrieval.</summary>
  </entry>
  

  
  <entry>
    <title>Context Engineering: The Discipline That Determines What Your LLM Actually Sees</title>
    <link href="https://aloknecessary.in/blogs/discipline-that-determines-what-your-llm-actually-sees/"/>
    <id>https://aloknecessary.in/blogs/discipline-that-determines-what-your-llm-actually-sees/</id>
    <updated>2026-06-23T00:00:00+00:00</updated>
    <summary type="html">Prompt engineering asks how to phrase an instruction. Context engineering asks what information the model needs, in what form, in what order, and how much of it. This post covers token budgeting, four-type memory architecture, structured injection patterns, conversation compression, lost-in-the-middle mitigation, contradiction detection, and testing context assembly as a first-class system.</summary>
  </entry>
  

  
  <entry>
    <title>Agentic RAG: Designing Self-Correcting Retrieval Loops for Production</title>
    <link href="https://aloknecessary.in/blogs/designing-self-correcting-retrieval-loops-for-production/"/>
    <id>https://aloknecessary.in/blogs/designing-self-correcting-retrieval-loops-for-production/</id>
    <updated>2026-06-17T00:00:00+00:00</updated>
    <summary type="html">Standard RAG retrieves once and hopes for the best. Agentic RAG retrieves, reflects, decides it was wrong, and tries again. This post covers the full architecture — query planning, iterative retrieval loops, reflection agents, multi-tool orchestration, routing, loop bounding, cost modeling, and the observability that makes agentic systems accountable.</summary>
  </entry>
  

  
  <entry>
    <title>I Almost Lost an Entire Blog with git reset --hard (And Git Saved Me)</title>
    <link href="https://aloknecessary.in/blogs/i-almost-lost-an-entire-blog-with-git-reset-hard/"/>
    <id>https://aloknecessary.in/blogs/i-almost-lost-an-entire-blog-with-git-reset-hard/</id>
    <updated>2026-06-14T00:00:00+00:00</updated>
    <summary type="html">I ran git reset --hard on autopilot and watched my blog post vanish. Fortunately, Git is far more resilient than most developers realize. This post covers the recovery, the mental model behind commits and references, and the commands every developer should know before they need them.</summary>
  </entry>
  

  
  <entry>
    <title>LLM Evaluation in Production: Building the Eval Pipeline That Runs on Every Deploy</title>
    <link href="https://aloknecessary.in/blogs/llm-evaluation-in-production/"/>
    <id>https://aloknecessary.in/blogs/llm-evaluation-in-production/</id>
    <updated>2026-06-11T00:00:00+00:00</updated>
    <summary type="html">Everyone ships the RAG system. Almost nobody ships the eval system that tells them when the RAG system starts lying. This post covers the four metrics that matter, LLM-as-Judge calibration, RAGAS integration, golden dataset management, GitHub Actions eval pipeline, and production sampling for continuous quality monitoring.</summary>
  </entry>
  

  
  <entry>
    <title>Building Reliable RAG Pipelines: From Prototype to Production</title>
    <link href="https://aloknecessary.in/blogs/rag_prototype_to_production/"/>
    <id>https://aloknecessary.in/blogs/rag_prototype_to_production/</id>
    <updated>2026-06-04T00:00:00+00:00</updated>
    <summary type="html">Most teams get RAG working in a notebook over a weekend. Very few get it working reliably in production. This post covers the full pipeline — chunking strategy, hybrid retrieval, re-ranking, context assembly, prompt construction, retrieval evaluation, production observability, and graceful degradation.</summary>
  </entry>
  

  
  <entry>
    <title>Event-Driven Architecture: The Dual Write Problem and How to Solve It</title>
    <link href="https://aloknecessary.in/blogs/dual-write-problem-in-event-driven-architecture/"/>
    <id>https://aloknecessary.in/blogs/dual-write-problem-in-event-driven-architecture/</id>
    <updated>2026-05-29T00:00:00+00:00</updated>
    <summary type="html">Writing to a database and publishing an event in the same operation without a transaction boundary is one of the most common correctness bugs in microservices. This post covers why it happens, the three solutions (Outbox Pattern, CDC with Debezium, Event Sourcing), and the operational concerns that determine which to choose.</summary>
  </entry>
  

  
  <entry>
    <title>AI-Assisted Data Reconciliation at Scale: Patterns for Distributed Systems</title>
    <link href="https://aloknecessary.in/blogs/ai_assisted_data_reconciliation/"/>
    <id>https://aloknecessary.in/blogs/ai_assisted_data_reconciliation/</id>
    <updated>2026-05-20T00:00:00+00:00</updated>
    <summary type="html">Traditional reconciliation breaks at the seams of distributed ownership. This post covers where rule-based reconciliation fails, how embedding similarity and LLM classification fill the gap, the observation window pattern for eventual consistency, and the hard boundaries where AI should never be trusted to auto-resolve.</summary>
  </entry>
  

  
  <entry>
    <title>Why Lift-and-Shift Fails Quietly: Architectural Smells That Appear After Migration</title>
    <link href="https://aloknecessary.in/blogs/lift-and-shift-fails-quietly/"/>
    <id>https://aloknecessary.in/blogs/lift-and-shift-fails-quietly/</id>
    <updated>2026-05-14T00:00:00+00:00</updated>
    <summary type="html">Lift-and-shift leaves on-premises assumptions baked into a system operating in a fundamentally different environment. This post covers the six architectural smells that surface after migration — latency amplification, chatty services, cost surprises, stateful assumptions, observability voids, and distributed monoliths — with diagnostics and mitigations for each.</summary>
  </entry>
  

  
  <entry>
    <title>Designing Cloud-Native Systems That Survive Region-Level Failures</title>
    <link href="https://aloknecessary.in/blogs/cloud_native_region_failure_architecture/"/>
    <id>https://aloknecessary.in/blogs/cloud_native_region_failure_architecture/</id>
    <updated>2026-05-04T00:00:00+00:00</updated>
    <summary type="html">Most teams design for instance and zone failures but treat region-level outages as someone else&apos;s problem. This post covers the real architecture decisions behind multi-region resilience — active-passive vs active-active patterns, data replication trade-offs, failover automation, and a cost-aware framework for deciding how much resilience your system actually needs.</summary>
  </entry>
  

  
  <entry>
    <title>Designing for Partial Failure: Why 'Everything is Highly Available' Is a Myth</title>
    <link href="https://aloknecessary.in/blogs/designing_for_partial_failure/"/>
    <id>https://aloknecessary.in/blogs/designing_for_partial_failure/</id>
    <updated>2026-04-17T00:00:00+00:00</updated>
    <summary type="html">High availability is not a property you buy — it is a discipline you build. This post covers how partial failures propagate into full outages, the concrete patterns that prevent cascading collapse (circuit breakers, bulkheads, timeout hierarchies, fallbacks), and the observability signals that make degraded states visible before they become incidents.</summary>
  </entry>
  

  
  <entry>
    <title>Platform Engineering: Building the Internal Developer Platform Your Teams Actually Need</title>
    <link href="https://aloknecessary.in/blogs/platform-engineering/"/>
    <id>https://aloknecessary.in/blogs/platform-engineering/</id>
    <updated>2026-04-08T00:00:00+00:00</updated>
    <summary type="html">Platform Engineering is the architectural response to infrastructure tax at scale. This post covers the four pillars of a production-grade IDP — self-service provisioning, golden path CI/CD, centralized observability, and policy enforcement — along with team structure, implementation sequence, and the metrics that actually matter.</summary>
  </entry>
  

  
  <entry>
    <title>BM25 vs. Vector Search: Choosing the Right Retrieval Strategy for Production Systems</title>
    <link href="https://aloknecessary.in/blogs/bm25_vs_vector_search/"/>
    <id>https://aloknecessary.in/blogs/bm25_vs_vector_search/</id>
    <updated>2026-03-31T00:00:00+00:00</updated>
    <summary type="html">Keyword relevance or semantic understanding — the answer is rarely one or the other. This deep dive covers BM25 mechanics, vector search with embeddings, hybrid retrieval via Reciprocal Rank Fusion, re-ranking with cross-encoders, chunking strategies, and the architecture mistakes teams make when building search and RAG pipelines.</summary>
  </entry>
  

  
  <entry>
    <title>The CAP Theorem in Practice: Making the Right Trade-offs at Scale</title>
    <link href="https://aloknecessary.in/blogs/cap_theorem_architecture/"/>
    <id>https://aloknecessary.in/blogs/cap_theorem_architecture/</id>
    <updated>2026-03-24T00:00:00+00:00</updated>
    <summary type="html">Every distributed system you build is already taking a side in the CAP trade-off. This post covers CP vs AP in practice, the PACELC model that actually matches production, architectural patterns shaped by CAP including sagas and CQRS, and a decision framework for making the trade-off deliberately.</summary>
  </entry>
  

  
  <entry>
    <title>Saga Orchestration vs. Choreography: Making the Right Trade-off in Event-Driven Systems</title>
    <link href="https://aloknecessary.in/blogs/saga-orchestration-vs-choreography/"/>
    <id>https://aloknecessary.in/blogs/saga-orchestration-vs-choreography/</id>
    <updated>2026-03-16T00:00:00+00:00</updated>
    <summary type="html">The saga pattern looks straightforward in diagrams and becomes genuinely complex in production. This post compares orchestration and choreography — central control vs. decentralized reactions — covering failure modes, compensation correctness, and the baseline requirements most teams underestimate.</summary>
  </entry>
  

  
  <entry>
    <title>Idempotency in Distributed Systems: Design Patterns Beyond 'Retry Safely'</title>
    <link href="https://aloknecessary.in/blogs/idempotency-distributed-systems/"/>
    <id>https://aloknecessary.in/blogs/idempotency-distributed-systems/</id>
    <updated>2026-03-11T00:00:00+00:00</updated>
    <summary type="html">Idempotency is more than &apos;retry safely&apos; — it&apos;s a system-wide property requiring deliberate design. This deep dive covers idempotency key semantics, deduplication store architecture, two-phase reservation patterns, API gateway vs application-layer handling, and the failure scenarios most teams miss until production breaks.</summary>
  </entry>
  

  
  <entry>
    <title>Fresh VM to Dev Infra: The Complete Setup Guide</title>
    <link href="https://aloknecessary.in/blogs/fresh-vm-dev-infra-setup/"/>
    <id>https://aloknecessary.in/blogs/fresh-vm-dev-infra-setup/</id>
    <updated>2026-03-04T00:00:00+00:00</updated>
    <summary type="html">Bootstrap a production-ready dev infrastructure VM with Docker, GitHub Actions runner, SQL, Redis, Portainer and Adminer — from zero to running in under an hour.</summary>
  </entry>
  

  
  <entry>
    <title>Self-Hosted Runners on Kubernetes: Architecture, Security, and Cost Analysis</title>
    <link href="https://aloknecessary.in/blogs/self-hosted-runners-kubernetes/"/>
    <id>https://aloknecessary.in/blogs/self-hosted-runners-kubernetes/</id>
    <updated>2026-02-26T00:00:00+00:00</updated>
    <summary type="html">Running GitHub Actions self-hosted runners on Kubernetes at scale requires careful architectural decisions around isolation, security, and cost. This deep dive covers Actions Runner Controller (ARC) deployment patterns, namespace vs node-level isolation models, blast radius analysis, security hardening strategies, and realistic cost comparisons against GitHub-managed runners. Learn when self-hosted makes sense and how to implement it safely.</summary>
  </entry>
  

</feed>
