<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~files/feed-premium.xsl"?>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedpress="https://feed.press/xmlns" xmlns:podcast="https://podcastindex.org/namespace/1.0" version="2.0">
  <channel>
    <feedpress:locale>en</feedpress:locale>
    <atom:link rel="self" href="https://feeds.dzone.com/javascript"/>
    <atom:link rel="hub" href="https://feedpress.superfeedr.com/"/>
    <title>DZone JavaScript Zone</title>
    <link>https://dzone.com/javascript</link>
    <description>Recent posts in JavaScript on DZone.com</description>
    <item>
      <title>How to Verify Response Data in API Testing With Playwright TypeScript</title>
      <link>https://feeds.dzone.com/link/23564/17473423/playwright-api-response-testing</link>
      <description><![CDATA[<p name="45fb">One of the most important parts of API test automation is validating the response body to ensure data integrity. This step plays a key role in functional API testing, as it helps confirm that the API is returning the right data in the expected format.</p>
<p name="c75e">Response body validation isn’t limited to a specific request type; it applies equally to POST, GET, PUT, and PATCH APIs. The same validation approach can be used for any API response to verify the data returned by the service.</p><img src="https://feeds.dzone.com/link/23564/17473423.gif" height="1" width="1"/>]]></description>
      <pubDate>Fri, 25 Sep 2026 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3684465</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19208217&amp;w=600"/>
      <dc:creator>Faisal Khatri</dc:creator>
    </item>
    <item>
      <title>When TypeScript Types Meet Untrusted AI: Building Type-Safe LLM Pipelines With Runtime Validation</title>
      <link>https://feeds.dzone.com/link/23564/17445590/typescript-runtime-validation</link>
      <description><![CDATA[<p>TypeScript can make an LLM integration look safer than it is. A function may promise <code>Promise&lt;Classification&gt;</code> and every branch may compile under strict settings, yet none of those guarantees prove that a model returned a valid <code>Classification</code>. TypeScript annotations are erased during compilation and do not alter runtime behavior, so data crossing an AI boundary remains untrusted until executable validation proves otherwise.&nbsp;</p>
<p>The practical goal is a pipeline in which model output becomes domain data only after passing a runtime contract.&nbsp;</p><img src="https://feeds.dzone.com/link/23564/17445590.gif" height="1" width="1"/>]]></description>
      <pubDate>Fri, 11 Sep 2026 18:00:07 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3681450</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19183744&amp;w=600"/>
      <dc:creator>Bhanu Sekhar Guttikonda</dc:creator>
    </item>
    <item>
      <title>Replacing JSON With Protobuf in Your Microservice Mesh: A Zero-Downtime Migration Blueprint</title>
      <link>https://feeds.dzone.com/link/23564/17445476/replacing-json-with-protbuf</link>
      <description><![CDATA[<div dir="ltr">
 <p>When engineering teams build distributed systems, they naturally reach for REST over HTTP/1.1 with JSON payloads. JSON is readable, universally supported, and trivially easy to debug with any browser or proxy tool. For early-stage services handling modest traffic, that convenience is a genuine engineering asset.</p>
 <p>But as microservice topologies scale toward hundreds of nodes handling tens of thousands of concurrent requests, text-based serialization frequently evolves from a minor convenience into a measurable architectural bottleneck. CPU utilization climbs, p99 latencies widen, and intra-zone bandwidth costs quietly compound across every internal service hop.</p><img src="https://feeds.dzone.com/link/23564/17445476.gif" height="1" width="1"/>]]></description>
      <pubDate>Fri, 11 Sep 2026 14:00:06 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3659806</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19053280&amp;w=600"/>
      <dc:creator>Bansidhar kadiya</dc:creator>
    </item>
    <item>
      <title>Angular Apps Don’t Need Another Chatbot: Building Agentic UI Workflows With TypeScript</title>
      <link>https://feeds.dzone.com/link/23564/17444698/angular-agentic-ui</link>
      <description><![CDATA[<p>A chatbot can explain data, summarize a screen, or answer questions, yet the application still behaves largely as before: business state lives elsewhere, actions remain disconnected from model output, and the interface is reduced to a transcript. Agentic UI takes a different approach. The model becomes a planner over explicit application capabilities, while Angular remains responsible for state, rendering, validation, authorization boundaries, and interaction. Angular’s current AI guidance already distinguishes basic chat experiences from agentic workflows and dynamic server-driven interfaces, while protocols such as AG-UI formalize streaming state and tool events between agent backends and frontends.&nbsp;</p>
<h2>Chat Is an Output Channel, Not the Application Model</h2>
<p>The key design shift is to model an agent run as a workflow rather than a sequence of messages. A purchasing screen, for example, can expose inventory lookup, draft modification, approval, and submission as capabilities. Natural language may start the flow, but the resulting interface should remain a normal application UI: editable fields, status indicators, review cards, validation messages, and explicit confirmation controls. <a href="https://dzone.com/articles/mcp-vs-a2a-vs-agui">AG-UI</a> follows this direction by defining lifecycle, text, tool-call, and state events instead of treating every interaction as plain assistant text. Tool calls are represented through structured events, allowing a frontend to represent work in progress without attempting to parse model prose into application behavior.&nbsp;</p><img src="https://feeds.dzone.com/link/23564/17444698.gif" height="1" width="1"/>]]></description>
      <pubDate>Thu, 10 Sep 2026 17:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3681449</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19185133&amp;w=600"/>
      <dc:creator>Bhanu Sekhar Guttikonda</dc:creator>
    </item>
    <item>
      <title>How to Test GET API Requests With Playwright TypeScript</title>
      <link>https://feeds.dzone.com/link/23564/17444638/playwright-rest-api</link>
      <description><![CDATA[<p name="6f52">Playwright is a widely used open-source test automation framework developed by Microsoft. It allows developers and test automation engineers to reliably automate web applications across multiple browsers and platforms. Playwright supports several popular programming languages, such as JavaScript, TypeScript, Java, C#, and Python. One of its standout features is built-in API automation testing, which gives it a strong advantage over many traditional web automation frameworks.</p>
<p name="4d5a">In this tutorial, we’ll explore how to use <a href="https://dzone.com/articles/playwright-javascript-tutorial-a-complete-guide">Playwright</a> with TypeScript and learn how to automate GET API requests.</p><img src="https://feeds.dzone.com/link/23564/17444638.gif" height="1" width="1"/>]]></description>
      <pubDate>Thu, 10 Sep 2026 15:00:04 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3681435</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19185116&amp;w=600"/>
      <dc:creator>Faisal Khatri</dc:creator>
    </item>
    <item>
      <title>Fetching Information Randomly From JSON Using Node, Nuxt, Express</title>
      <link>https://feeds.dzone.com/link/23564/17444264/random-json-node-nuxt</link>
      <description><![CDATA[<p>Nuxt.js is a popular framework for Vue.js, and it is widely used for websites that require server-side rendering. It is similar to the Next.js framework for React.js. In this article, I’m going to share how you can fetch values randomly from a static JSON file with a Node and Express server.&nbsp;</p>
<p>To make this example more realistic, we will store some words with their meanings in the words.json file in a static folder at the root. The necessary frameworks and libraries need to be installed on your machine, and basic knowledge is required:</p><img src="https://feeds.dzone.com/link/23564/17444264.gif" height="1" width="1"/>]]></description>
      <pubDate>Thu, 10 Sep 2026 12:00:07 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3654793</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19185091&amp;w=600"/>
      <dc:creator>Richard Davis</dc:creator>
    </item>
    <item>
      <title>Node.js Microservices Architecture: A Complete Guide</title>
      <link>https://feeds.dzone.com/link/23564/17437308/nodejs-microservices-architecture</link>
      <description><![CDATA[<p dir="ltr">Most teams don't decide to build microservices. They get pushed into it. One app grows for a couple of years. More people push into the same codebase. Then a change to something totally unrelated breaks checkout on a Tuesday.</p>
<p dir="ltr">Nobody planned that. That's usually when someone says it, half-joking, half not: maybe we should just split this thing up.</p><img src="https://feeds.dzone.com/link/23564/17437308.gif" height="1" width="1"/>]]></description>
      <pubDate>Wed, 02 Sep 2026 15:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3673362</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19162496&amp;w=600"/>
      <dc:creator>Megha Verma</dc:creator>
    </item>
    <item>
      <title>The Code-Volume Delusion: Rethinking Engineering Velocity in the AI Era</title>
      <link>https://feeds.dzone.com/link/23564/17428298/rethinking-ai-engineering-velocity</link>
      <description><![CDATA[<p dir="ltr" style="text-align: left;">Let's be honest about what happens when you give an entire engineering team AI coding assistants.</p>
<p dir="ltr" style="text-align: left;">You look at the sprint board, and tickets are moving to "In Review" faster than ever. Your developers are happy. They are writing boilerplate in seconds and generating entire component structures before their morning coffee gets cold. If you measure productivity by the sheer volume of code generated, your team has successfully turned into a factory.</p><img src="https://feeds.dzone.com/link/23564/17428298.gif" height="1" width="1"/>]]></description>
      <pubDate>Tue, 25 Aug 2026 15:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3664849</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19144491&amp;w=600"/>
      <dc:creator>Rupesh Dabbir</dc:creator>
    </item>
    <item>
      <title>Text Analysis Without a Backend: Replacing an LLM Call With Intl.Segmenter and 60 Lines of JavaScript</title>
      <link>https://feeds.dzone.com/link/23564/17427691/text-analysis-without-backend</link>
      <description><![CDATA[<article>
 <p>Last spring, I had six small text features to build: flag filler phrases in a draft, score sentence-length variation, format a citation, check a document against a rubric. My first design put all six behind an API route that called a model. It worked in an afternoon.</p>
 <p>Then I priced it. <a href="https://dzone.com/articles/anthropics-model-context-protocol-mcp-a-developers">Anthropic</a> lists Claude Fable 5 at $10 per million input tokens and $50 per million output. A 700-word draft plus instructions runs about 1,500 input tokens, and users hit the button five or six times per session while they edit. The bill is survivable. The rest of the tradeoff is not.</p><img src="https://feeds.dzone.com/link/23564/17427691.gif" height="1" width="1"/>]]></description>
      <pubDate>Mon, 24 Aug 2026 18:00:01 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3669846</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19132464&amp;w=600"/>
      <dc:creator>Kevin Brown</dc:creator>
    </item>
    <item>
      <title>Stop Hand-Rolling Chat UIs: Streaming LLM Tokens Into React Native Without the Jank</title>
      <link>https://feeds.dzone.com/link/23564/17424614/streaming-llm-tokens-into-react-native</link>
      <description><![CDATA[<p>A chat screen looks like a weekend project: a list of bubbles and a text input pinned to the bottom. In React Native, it is one of the hardest things to ship well, because it sits on top of the two most hostile surfaces in mobile development: the software keyboard and a scrolling list that changes size while you're looking at it.</p>
<p>We're putting LLMs into everything now, and there is still no good drop-in chat view for React Native. You glue together an aging library with strong opinions, or you hand-roll it. I hand-rolled it. Then I made the LLM stream its replies token by token, and the whole thing fell apart in a way that took a week to understand.</p><img src="https://feeds.dzone.com/link/23564/17424614.gif" height="1" width="1"/>]]></description>
      <pubDate>Thu, 20 Aug 2026 18:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3660826</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19146110&amp;w=600"/>
      <dc:creator>Tammo Ronke</dc:creator>
    </item>
    <item>
      <title>A Framework-Agnostic Approach to SSR for Microfrontends</title>
      <link>https://feeds.dzone.com/link/23564/17414879/ssr-for-microfrontends</link>
      <description><![CDATA[<p data-pm-slice="1 1 []">On one of our projects, we were building microfrontends, and at some point we wanted to add SSR. The reasons were the usual ones: better first paint, fewer layout shifts, real content for crawlers, less JS to load before something appears on screen.</p>
<p>Setting it up turned out to be harder than I expected. There was no obvious out-of-box path that fit our setup, and most of the approaches I found either assumed a shared build or asked us to add new infrastructure on top of what we already had.</p><img src="https://feeds.dzone.com/link/23564/17414879.gif" height="1" width="1"/>]]></description>
      <pubDate>Tue, 11 Aug 2026 13:00:01 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3665466</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19127538&amp;w=600"/>
      <dc:creator>Vitaly Zheltko</dc:creator>
    </item>
    <item>
      <title>How We Cut PyFlink Pipeline p99 Latency from 3-5 Seconds to ~500ms</title>
      <link>https://feeds.dzone.com/link/23564/17405181/how-we-got-pyflink-under-half-a-second-of-end-to-e</link>
      <description><![CDATA[<h2 data-sourcepos="5:1-5:40;241-280" dir="ltr">The Problem: Our p99 Was 3-5 Seconds</h2>
<p data-sourcepos="7:1-7:310;282-591" dir="ltr">Our PyFlink pipeline was missing its latency SLO by seconds. The pipeline itself was straightforward: consume events from Kafka, transform them, serialize them as Protobuf, and write the results to downstream systems. Yet under production load, p99 end-to-end latency was consistently in the 3-5 second range.</p>
<p data-sourcepos="9:1-9:364;593-956" dir="ltr">Profiling pointed us to an unexpected bottleneck: we were deserializing Protobuf messages in <a href="https://dzone.com/articles/python-tutorial-for-beginners-a-comprehensive-guid">Python</a>, even though the Flink runtime processing our stream was JVM-based. Every record that entered the Python path had to cross the JVM-to-Python process boundary, get parsed by a Python UDF, and then cross back. The business logic wasn't the problem. The doorway was.</p><img src="https://feeds.dzone.com/link/23564/17405181.gif" height="1" width="1"/>]]></description>
      <pubDate>Fri, 07 Aug 2026 16:00:05 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3666511</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19120907&amp;w=600"/>
      <dc:creator>Arjun Shah</dc:creator>
    </item>
    <item>
      <title>Refresh Token Rotation in Node.js: Stopping Token Theft Without Logging Users Out</title>
      <link>https://feeds.dzone.com/link/23564/17384936/nodejs-refresh-tokens</link>
      <description><![CDATA[<p><span>JWT-based authentication is simple to start with and surprisingly hard to get right. The naive setup of a long-lived access token stored in the browser is a security liability. The textbook fixes short-lived access tokens plus a refresh token — introduce their own problem:&nbsp;</span></p>
<h2><strong>What Happens When a Refresh Token Is Stolen?</strong></h2>
<p>This article walks through implementing <strong>refresh token rotation with reuse detection</strong>, a pattern that limits the damage of a stolen token while keeping legitimate users logged in. All examples are in Node.js with Express.</p><img src="https://feeds.dzone.com/link/23564/17384936.gif" height="1" width="1"/>]]></description>
      <pubDate>Wed, 22 Jul 2026 17:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3666025</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19098418&amp;w=600"/>
      <dc:creator>Bilal Azam</dc:creator>
    </item>
    <item>
      <title>React 19 Killed Half My Performance Optimization Code, and I'm Grateful</title>
      <link>https://feeds.dzone.com/link/23564/17384909/react-19-optimization</link>
      <description><![CDATA[<p>I maintain a React admin dashboard codebase that had — at last count before upgrading to React 19 — 34 instances of <code lang="text">useMemo</code>, 28 instances of <code lang="text">useCallback</code>, and 19 components wrapped in <code lang="text">memo()</code>. I spent a nontrivial amount of time over two years adding those optimizations, debugging cases where I'd gotten the dependency arrays wrong, and explaining to junior developers why the table re-rendered on every keystroke.</p>
<p><a href="https://dzone.com/articles/react-server-components-nextjs-15">React 19</a> with the compiler deleted most of that work. Here's what actually changed and what still matters.</p><img src="https://feeds.dzone.com/link/23564/17384909.gif" height="1" width="1"/>]]></description>
      <pubDate>Wed, 22 Jul 2026 16:00:01 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3664136</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19098411&amp;w=600"/>
      <dc:creator>Rohit G</dc:creator>
    </item>
    <item>
      <title>Add Observability to Your React Native Application in 5 Minutes</title>
      <link>https://feeds.dzone.com/link/23564/17373905/react-native-observability</link>
      <description><![CDATA[<p>In modern application development, feature flags are the guardrails that keep experiments controlled and rollbacks safe when conditions shift. If feature flags act as the guardrails, observability provides the visibility: the headlights (traces), mirrors (logs), and dashboard instruments (metrics) that reveal what’s happening in the environment and how well a feature is performing.&nbsp;</p>
<p>Together, feature flags and observability unlock powerful insights by correlating code changes with real-time system behavior. This combination reduces time-to-diagnosis and builds greater confidence when rolling out new features.</p><img src="https://feeds.dzone.com/link/23564/17373905.gif" height="1" width="1"/>]]></description>
      <pubDate>Mon, 06 Jul 2026 15:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3654487</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19076766&amp;w=600"/>
      <dc:creator>Alexis Roberson</dc:creator>
    </item>
    <item>
      <title>Dead Letter Queue Patterns in Apache Flink: Handling Poison Messages Without Stopping Your Stream</title>
      <link>https://feeds.dzone.com/link/23564/17371676/flink-dlq-patterns</link>
      <description><![CDATA[<div data-theme="light">
 <p>Streaming systems usually fail in one of two ways:</p>
 <ul>
  <li><strong>Loudly</strong>, when infrastructure breaks</li>
  <li><strong>Quietly</strong>, when one bad record keeps replaying until the pipeline is effectively dead</li>
 </ul>
 <p>The second failure mode is more dangerous because it often starts with something small: malformed JSON, an unexpected schema change, a missing required field, or a downstream timeout that was never handled correctly.</p><img src="https://feeds.dzone.com/link/23564/17371676.gif" height="1" width="1"/>]]></description>
      <pubDate>Thu, 02 Jul 2026 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3659522</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19049222&amp;w=600"/>
      <dc:creator>Rohit Muthyala</dc:creator>
    </item>
    <item>
      <title>AI-Augmented React Development: How I Rebuilt My Workflow Without Losing Control of the Code</title>
      <link>https://feeds.dzone.com/link/23564/17371154/ai-react-development</link>
      <description><![CDATA[<p>Every React developer reaches a point where the sheer volume of boilerplate starts to slow them down. Prop drilling, repetitive hook patterns, component scaffolding, unit test setup — the cognitive overhead adds up fast, especially at enterprise scale. When GitHub Copilot entered my workflow, I expected a productivity boost. What I didn't expect was how much I'd have to <em>think</em> about using it correctly.</p>
<p>After integrating AI-assisted development into a React 18 codebase — spanning custom hooks, context-based state management, and accessibility-driven UI — I came away with a clear picture of where AI genuinely accelerates the work, where it quietly introduces risk, and what guardrails every team needs before they ship AI-assisted code to production.</p><img src="https://feeds.dzone.com/link/23564/17371154.gif" height="1" width="1"/>]]></description>
      <pubDate>Wed, 01 Jul 2026 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3653488</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19074711&amp;w=600"/>
      <dc:creator>Sathwik Nagulapati</dc:creator>
    </item>
    <item>
      <title>Fix the Target, Precompute Once: A Backend-Free Word-Ladder Solver With a BFS Distance Field</title>
      <link>https://feeds.dzone.com/link/23564/17365288/word-ladder-bfs-distance-field</link>
      <description><![CDATA[<p>When you build an interactive puzzle, the latency budget is unforgiving. Every keystroke needs an answer that feels instant. A daily word-ladder game has to do three of those instant jobs at once: confirm that the word a player typed is legal, tell them the best possible score for the day, and, on request, reveal the shortest solution. I ran into all three while building <a href="https://pooplegame.com/" rel="noopener noreferrer" target="_blank">Poople</a>, a daily game where you change a 4-letter word into POOP one letter at a time, and the fix turned out to be a tidy lesson in trading repeated computation for one-time precomputation.</p>
<p>The obvious approach is to run a graph search whenever you need an answer. That works, and it is also the wrong default here. This article walks through why, then shows how fixing the destination word lets you replace every future search with a single offline pass plus an O(1) lookup. The whole solver then runs in the browser, with no backend and no per-request search.</p><img src="https://feeds.dzone.com/link/23564/17365288.gif" height="1" width="1"/>]]></description>
      <pubDate>Mon, 22 Jun 2026 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3659585</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19053674&amp;w=600"/>
      <dc:creator>horus he</dc:creator>
    </item>
    <item>
      <title>The Real-Time Revolution: Why Blockchain Needs Data Stream Processing</title>
      <link>https://feeds.dzone.com/link/23564/17362819/why-blockchain-needs-data-stream-processing</link>
      <description><![CDATA[<p><span>Blockchain is an extremely data-driven technology because its primary function is to store, verify, and coordinate independent records in a secure, distributed data network. Without this information, no transaction, smart contract execution, or network activity would be valid, and it could jeopardize the integrity of much larger functions of trust.&nbsp;</span></p>
<p><span>T</span><span>he data coming into the blockchain affects the accuracy of the whole system. Blockchain is nothing without the data it connects to, so, as far as transparency, immutability, and safe decisions are concerned, data is the backbone of blockchain.</span></p><img src="https://feeds.dzone.com/link/23564/17362819.gif" height="1" width="1"/>]]></description>
      <pubDate>Wed, 17 Jun 2026 18:00:00 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3659742</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19049426&amp;w=600"/>
      <dc:creator>Gautam Goswami</dc:creator>
    </item>
    <item>
      <title>Migrate a Hardcoded LangGraph Agent to LaunchDarkly AI Configs in 20 Minutes</title>
      <link>https://feeds.dzone.com/link/23564/17352784/langgraph-ai-config-migration</link>
      <description><![CDATA[<p>In this tutorial, you’ll run a small LangGraph agent locally, then migrate its hardcoded prompts, model choice, and tools into LaunchDarkly AI Configs. After the migration, every prompt tweak, model swap, or tool change ships as a LaunchDarkly update instead of a code deploy. The migration takes about 20 minutes.</p>
<p>When you finish, the codebase will:</p><img src="https://feeds.dzone.com/link/23564/17352784.gif" height="1" width="1"/>]]></description>
      <pubDate>Tue, 02 Jun 2026 16:00:01 GMT</pubDate>
      <guid isPermaLink="false">https://dzone.com/articles/3653310</guid>
      <media:thumbnail url="https://dz2cdn1.dzone.com/thumbnail?fid=19014090&amp;w=600"/>
      <dc:creator>Scarlett Attensil</dc:creator>
    </item>
  </channel>
</rss>
