<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Architecture on David Lang</title>
    <link>https://www.davidlang.tech/tags/architecture/</link>
    <description>Recent content in Architecture on David Lang</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 01 Dec 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.davidlang.tech/tags/architecture/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>From RAG to Agentic AI: What&#39;s Next for LLM-Powered Apps</title>
      <link>https://www.davidlang.tech/posts/from-rag-to-agentic-ai-whats-next-for-llm-powered-apps/</link>
      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://www.davidlang.tech/posts/from-rag-to-agentic-ai-whats-next-for-llm-powered-apps/</guid>
      <description>&lt;p&gt;The industry moved from chatbots → RAG → agents. Understanding the progression helps you invest in the right layer for your product maturity.&lt;/p&gt;&#xA;&lt;h2 id=&#34;rag-era&#34;&gt;RAG Era&lt;/h2&gt;&#xA;&lt;p&gt;Ground models in private data. Mature patterns: chunking, hybrid search, citations. Still the right default for Q&amp;amp;A and search.&lt;/p&gt;&#xA;&lt;h2 id=&#34;agent-era&#34;&gt;Agent Era&lt;/h2&gt;&#xA;&lt;p&gt;Models call tools, plan multi-step workflows, and maintain state. Higher capability, higher risk.&lt;/p&gt;&#xA;&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s Next&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Evals-as-code&lt;/strong&gt; in every pipeline&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Smaller specialist models&lt;/strong&gt; routed by orchestrators&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;On-device&lt;/strong&gt; for privacy-sensitive steps&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Human-agent collaboration&lt;/strong&gt; UIs, not just chat&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;migration-path&#34;&gt;Migration Path&lt;/h2&gt;&#xA;&lt;p&gt;Master RAG and evals first. Add one well-scoped agent tool. Measure task completion before expanding autonomy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building Multi-Agent AI Systems</title>
      <link>https://www.davidlang.tech/posts/building-multi-agent-ai-systems/</link>
      <pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate>
      <guid>https://www.davidlang.tech/posts/building-multi-agent-ai-systems/</guid>
      <description>&lt;p&gt;Multi-agent systems divide work among specialized agents-a researcher, coder, critic-coordinated by a supervisor or message bus.&lt;/p&gt;&#xA;&lt;h2 id=&#34;patterns&#34;&gt;Patterns&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Supervisor&lt;/strong&gt; - One model delegates subtasks and aggregates results.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Peer-to-peer&lt;/strong&gt; - Agents message each other until consensus or max rounds.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Pipeline&lt;/strong&gt; - Fixed stages (plan → implement → test).&lt;/p&gt;&#xA;&lt;h2 id=&#34;implementation-tips&#34;&gt;Implementation Tips&lt;/h2&gt;&#xA;&lt;p&gt;Give each agent a narrow system prompt and tool set. Pass structured state (JSON) between agents, not raw chat logs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;failure-modes&#34;&gt;Failure Modes&lt;/h2&gt;&#xA;&lt;p&gt;Infinite loops, duplicated work, conflicting edits. Enforce step limits, idempotent tools, and single-writer rules for shared files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building Microservices with Node.js</title>
      <link>https://www.davidlang.tech/posts/building-microservices-with-nodejs/</link>
      <pubDate>Sat, 22 May 2021 00:00:00 +0000</pubDate>
      <guid>https://www.davidlang.tech/posts/building-microservices-with-nodejs/</guid>
      <description>&lt;p&gt;Microservices split a system into independently deployable services. Node.js is a common choice for I/O-bound services, BFF layers, and event-driven workers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;service-boundaries&#34;&gt;Service Boundaries&lt;/h2&gt;&#xA;&lt;p&gt;Split by business capability-not by technical layer. A &lt;code&gt;orders&lt;/code&gt; service owns order data; a &lt;code&gt;notifications&lt;/code&gt; service sends email. Communicate via REST, gRPC, or message queues (RabbitMQ, Kafka).&lt;/p&gt;&#xA;&lt;h2 id=&#34;resilience-patterns&#34;&gt;Resilience Patterns&lt;/h2&gt;&#xA;&lt;p&gt;Implement timeouts, retries with exponential backoff, and circuit breakers. Use correlation IDs across services for distributed tracing (OpenTelemetry).&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
