{"id":31789,"date":"2026-02-11T23:18:34","date_gmt":"2026-02-12T07:18:34","guid":{"rendered":"https:\/\/www.pingcap.com\/?p=31789"},"modified":"2026-02-13T07:27:59","modified_gmt":"2026-02-13T15:27:59","slug":"build-scalable-ai-tidb-kiro-hybrid-data-architecture","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/","title":{"rendered":"Prompt To Production: Building Scalable AI on TiDB with Kiro"},"content":{"rendered":"<p><em>A technical deep dive into letting an AI reason directly over your database<\/em>.<\/p>\n\n\n\n<p><br>Food waste is a quiet horror story. Every year, roughly 1.3 billion tons of food are discarded globally, often because we simply forget what\u2019s in the back of our fridges. Half-used onions, forgotten spinach, and that single, lonely tomato\u2014they aren&#8217;t just ingredients; they are &#8220;ghosts&#8221; of a meal that never happened.<\/p>\n\n\n\n<p>During a late-night coding session, staring at my own fridge, I wondered if we could use modern tech to bring these ingredients back to life. This sparked the idea for <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Recipe Reanimator<\/mark><\/strong>, a Halloween-themed web app designed to turn leftover &#8220;scraps&#8221; into AI-generated culinary creations while tracking the environmental impact.<\/p>\n\n\n\n<p>Building this wasn&#8217;t just about the recipes, though. It was a journey into managing a hybrid data architecture\u2014balancing the rigid structure of user accounts and sustainability metrics with the flexible nature of AI-generated content. To do this, we stitched together a &#8220;chimera&#8221; of technologies, primarily using <a href=\"https:\/\/www.pingcap.com\/ko\/tidb\/cloud\/\"><strong>TiDB Cloud<\/strong><\/a> for our relational backbone and <a href=\"https:\/\/kiro.dev\/\"><strong>Kiro<\/strong><\/a> as our AI-driven development partner.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Goal_Solving_the_%E2%80%9CFridge_Graveyard%E2%80%9D\"><\/span>The Goal: Solving the &#8220;Fridge Graveyard&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The mission was simple but technically demanding: create an interface where users could &#8220;reanimate&#8221; their leftovers. We needed to handle image recognition for pantry items, complex recipe generation via LLMs, and a persistent record of every gram of CO\u2082 saved.<\/p>\n\n\n\n<p>We set out to build a system where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Vision-to-Pantry<\/strong>: Users snap a photo; Gemini Vision extracts the ingredients.<\/li>\n\n\n\n<li><strong>The Cauldron<\/strong>: A drag-and-drop UI where ingredients are staged for processing.<\/li>\n\n\n\n<li><strong>Impact Tracking<\/strong>: Real-time calculations of money and carbon emissions saved.<\/li>\n\n\n\n<li><strong>The Library<\/strong>: A persistent store of &#8220;reanimated&#8221; recipes, favorites, and shopping lists.<\/li>\n<\/ul>\n\n\n\n<p>The challenge wasn&#8217;t just the AI logic; it was the data integrity. We needed a system that could handle the structured relationship between users, their historical savings, and their saved favorites without becoming a maintenance nightmare as the feature set grew.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Stack_Why_We_Chose_a_Hybrid_Approach\"><\/span>The Stack: Why We Chose a Hybrid Approach<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>When deciding on the data layer, we noticed a clear divide in our requirements. Our recipe data was highly unstructured\u2014JSON blobs from LLMs that could change schema based on the prompt. However, our core business logic\u2014user authentication, sustainability benchmarks, and relational links\u2014required strict ACID compliance.<\/p>\n\n\n\n<p>We chose <a href=\"https:\/\/www.pingcap.com\/ko\/tidb\/\"><strong>\ud2f0DB<\/strong><\/a> as our primary relational engine. As a <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/why-distributed-sql-databases-elevate-modern-app-dev\/\">distributed SQL database<\/a>, it gave us the familiar MySQL-compatible interface we needed for Python\u2019s SQLAlchemy, but with the horizontal scalability that ensures we won&#8217;t outgrow our infrastructure if the app goes viral.<\/p>\n\n\n\n<p>To complement this, we used:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backend<\/strong>: Python (FastAPI) for high-performance asynchronous API handling.<\/li>\n\n\n\n<li><strong>AI Orchestration<\/strong>: Google Gemini for vision and recipe synthesis.<\/li>\n\n\n\n<li><strong>Development Partner<\/strong>: <strong>Kiro<\/strong>, an AI-first IDE tool that supports Model Context Protocol (MCP), allowing it to &#8220;see&#8221; and interact with our TiDB schema directly.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"627\" src=\"https:\/\/static.pingcap.com\/files\/2026\/02\/11224922\/scalable-ai-architecture-tidb-kiro-1024x627.png\" alt=\"Architecture diagram showing TiDB Cloud, MongoDB Atlas, and Kiro IDE integration for an AI recipe application\" class=\"wp-image-31791\" srcset=\"https:\/\/static.pingcap.com\/files\/2026\/02\/11224922\/scalable-ai-architecture-tidb-kiro-1024x627.png 1024w, https:\/\/static.pingcap.com\/files\/2026\/02\/11224922\/scalable-ai-architecture-tidb-kiro-300x184.png 300w, https:\/\/static.pingcap.com\/files\/2026\/02\/11224922\/scalable-ai-architecture-tidb-kiro-768x470.png 768w, https:\/\/static.pingcap.com\/files\/2026\/02\/11224922\/scalable-ai-architecture-tidb-kiro-1536x941.png 1536w, https:\/\/static.pingcap.com\/files\/2026\/02\/11224922\/scalable-ai-architecture-tidb-kiro.png 1750w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Architecture diagram showing TiDB Cloud, MongoDB Atlas, and Kiro IDE integration for an AI recipe application<\/em>.<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Architecture_Stitching_the_Chimera_Together\"><\/span>The Architecture: Stitching the Chimera Together<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A common mistake in AI projects is dumping everything into a document store. We resisted this. For Recipe Reanimator, TiDB acts as the &#8220;brain,&#8221; managing the state and relationships, while MongoDB handles the &#8220;flesh&#8221; (the recipes themselves).<\/p>\n\n\n\n<p>We relied on TiDB to handle three critical areas:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Identity &amp; Security<\/strong>: Managing user hashes and session data.<\/li>\n\n\n\n<li><strong>The Sustainability Ledger<\/strong>: Tracking cumulative CO\u2082 and financial savings.<\/li>\n\n\n\n<li><strong>Relational Mapping<\/strong>: Connecting unique user IDs to specific recipe IDs stored elsewhere.<\/li>\n<\/ol>\n\n\n\n<p>With the foundation in place, the next challenge was actually building the schema. Instead of writing boilerplate DDL scripts manually, we used Kiro\u2019s MCP integration to let our AI assistant interface directly with our <strong>\ud2f0DB<\/strong> instance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Implementation_Defining_the_Living_Schema\"><\/span>Implementation: Defining the Living Schema<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>One challenge we faced early on was defining a schema that could accurately track &#8220;Waste Scores.&#8221; We needed to store historical data on food categories and their respective carbon footprints. We used TiDB to ensure that every &#8220;reanimation&#8221; event was transactionally linked to a user&#8217;s total impact score.<\/p>\n\n\n\n<p>The following Python snippet shows how we defined our core Shopping Item model using BaseModel, which connects seamlessly to TiDB&#8217;s MySQL-compatible interface.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field\nfrom datetime import datetime\nfrom typing import Optional\n\n\nclass ShoppingItemCreate(BaseModel):\n    \"\"\"Model for creating a shopping list item\"\"\"\n    ingredient_name: str = Field(..., description=\"Name of the ingredient\")\n    quantity: Optional&#91;str] = Field(None, description=\"Quantity needed\")\n    recipe_id: Optional&#91;str] = Field(None, description=\"Recipe ID this item is for\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Connecting_Kiro_to_TiDB_via_MCP\"><\/span><strong>Connecting Kiro to TiDB via MCP<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The most significant &#8220;aha!&#8221; moment occurred when we configured Kiro to talk to our TiDB instance. By using a Model Context Protocol (MCP) server, we allowed Kiro to execute <code>DESCRIBE<\/code> \uadf8\ub9ac\uace0 <code>SELECT<\/code> queries in our development environment.<\/p>\n\n\n\n<p>When we needed to add a &#8220;Favorites&#8221; feature, we didn&#8217;t just ask the AI to &#8220;write some code.&#8221; We asked it to &#8220;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Check the existing user table in TiDB and suggest a relational schema for a favorites table that links to our MongoDB recipe IDs.<\/mark>&#8220;<\/p>\n\n\n\n<p>The AI was able to see the live schema and generate the SQL, which was executed by the Kiro terminal. To setup the MCP connection in the settings of Kiro inside the mcp.json file we added the below code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"mcpServers\": {\n    \"fetch\": {\n      \"command\": \"uvx\",\n      \"args\": &#91;\n        \"mcp-server-fetch\"\n      ],\n      \"env\": {},\n      \"disabled\": true,\n      \"autoApprove\": &#91;]\n    },\n    \"TiDB\": {\n      \"command\": \"uvx\",\n      \"args\": &#91;\n        \"--from\",\n        \"pytidb&#91;mcp]\",\n        \"tidb-mcp-server\"\n      ],\n      \"env\": {\n        \"TIDB_HOST\": \"gateway01.ap-southeast-1.prod.aws.tidbcloud.com\",\n        \"TIDB_PORT\": \"4000\",\n        \"TIDB_USERNAME\": \"&lt;username&gt;\",\n        \"TIDB_PASSWORD\": \"&lt;password&gt;\",\n        \"TIDB_DATABASE\": \"RecipeReanimator\"\n      },\n      \"disabled\": false,\n      \"autoApprove\": &#91;\n        \"switch_database\",\n        \"show_tables\",\n        \"show_databases\",\n        \"db_execute\"\n      ]\n    }\n  }\n}\n<\/code><\/pre>\n\n\n\n<p>After this connection was established, the AI was immediately aware of any new table, updates in the schema and any detail it wanted, allowing it to generate the corresponding FastAPI CRUD endpoints without any &#8220;hallucinations&#8221; about column names or types.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Spellbook_Guiding_Kiro_with_Steering_Docs\"><\/span>The Spellbook: Guiding Kiro with Steering Docs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Every great experiment needs a set of protocols. While <strong>Kiro<\/strong> is inherently smart, we wanted to ensure it didn&#8217;t just write &#8220;generic&#8221; SQL code\u2014we wanted it to write code that felt native to our specific TiDB setup and FastAPI architecture. We noticed that &#8220;vibe coding&#8221; without constraints often leads to minor inconsistencies in how connections are handled.<\/p>\n\n\n\n<p>To solve this, we utilized Kiro\u2019s <strong>Steering Docs<\/strong>. These are project-wide rules that act as a &#8220;spellbook&#8221; for the AI, baking our architectural decisions directly into its generation logic. In our <code>.kiro\/steering\/tech.md<\/code> file, we defined exactly how the &#8220;reanimation&#8221; logic should interface with our database.<\/p>\n\n\n\n<p>With these rules in place, the foundation was set. Instead of the AI guessing which driver to use, it followed our specific requirements for the <code>pytidb<\/code> module and our preferred connection patterns. This brings us to the core problem: how do we maintain performance when joining these results under load?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Implementing the TiDB Protocol<\/h3>\n\n\n\n<p>Because Kiro was &#8220;steered&#8221; by our documentation, it knew that for our FastAPI codebase, we preferred a direct connection pattern using <code>pytidb<\/code>. This ensured that every time we asked for a new database-heavy feature\u2014like the global &#8220;Waste Leaderboard&#8221;\u2014it used the correct SSL configurations and query structures.<\/p>\n\n\n\n<p>The following snippet is an example of the code Kiro generated after we provided the steering instructions. Notice how it adheres strictly to our <code>TIDB_DATABASE_URL<\/code> format and uses the <code>certifi<\/code> helper to cleanly handle SSL connections:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from pytidb import TiDBClient\ndef _reconnect_tidb(self) -&gt; bool:\n        \"\"\"\n        Reconnect to TiDB if connection is lost.\n        \n        Returns:\n            True if reconnection successful, False otherwise\n        \"\"\"\n        try:\n            settings = get_settings()\n            tidb_url = f\"mysql+pymysql:\/\/{settings.tidb_user}:{settings.tidb_password}@{settings.tidb_host}:{settings.tidb_port}\/{settings.tidb_database}?ssl_ca={certifi.where()}\"\n            self._tidb_client = TiDBClient.connect(tidb_url)\n            self._tidb_connected = True\n            logger.info(\"TiDB client reconnected successfully\")\n            return True\n        except Exception as e:\n            logger.error(f\"Failed to reconnect TiDB client: {e}\")\n            self._tidb_connected = False\n            return False\n<\/code><\/pre>\n\n\n\n<p>By providing these guardrails, we eliminated the struggle of fixing &#8220;hallucinated&#8221; connection strings. Under a simulated load of 1,000 concurrent &#8220;brews,&#8221; the code generated through this steered process maintained high stability. We utilized TiDB\u2019s ability to handle these concurrent connections without the latency spikes we&#8217;ve seen in standard MySQL setups during high-traffic bursts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Treasure_Results_and_Metrics\"><\/span><br>The Treasure: Results and Metrics<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>By the end of the Kiroween hackathon, Recipe Reanimator was a fully functioning monster. We achieved a system that felt cohesive, despite its fragmented technological origins.<\/p>\n\n\n\n<p>Under production-like testing\u2014simulating 500 users reanimating ingredients simultaneously\u2014the <strong>\ud2f0DB<\/strong> tier maintained a P99 latency of under 15ms for user profile and impact lookups. This eliminated the bottlenecks we feared when calculating real-time sustainability metrics.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Metric<\/strong><\/td><td><strong>Before (Mock\/Manual)<\/strong><\/td><td><strong>After (TiDB + MCP)<\/strong><\/td><\/tr><tr><td>Schema Design Time<\/td><td>4 hours<\/td><td>45 minutes<\/td><\/tr><tr><td>API Development Speed<\/td><td>1x<\/td><td>2.5x (via Kiro)<\/td><\/tr><tr><td>Query Latency (P99)<\/td><td>N\/A<\/td><td>12-15ms<\/td><\/tr><tr><td>Data Consistency&nbsp;<\/td><td>Frequent Issues<\/td><td>0 Issues<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The data suggested that using a managed service like TiDB allowed us to focus 90% of our energy on the &#8220;fun&#8221; parts\u2014the AI prompts and the Gothic UI\u2014rather than worrying about database reliability or connection pooling.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Whats_Next_Giving_the_Monster_More_Brains\"><\/span>What\u2019s Next: Giving the Monster More Brains<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Recipe Reanimator is just the beginning. Our next step is to utilize <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tiflash-overview\/\"><strong>TiFlash<\/strong><\/a>, TiDB\u2019s columnar storage engine, to run real-time analytical queries across all users. We want to generate &#8220;Global Reanimation Reports&#8221; that show the collective impact of the community, which will require the kind of OLAP power that TiFlash provides without needing a separate ETL pipeline.<\/p>\n\n\n\n<p>Under the hood, TiDB\u2019s HTAP design lets analytics run directly on live data. This works especially well for AI systems that mix real-time interactions with analytical workloads.<\/p>\n\n\n\n<p>If you\u2019re building an AI application, don&#8217;t just dump your data into the first bucket you find. Consider the hybrid approach: use TiDB for what needs to be solid, and use AI tools like Kiro to bridge the gap between your code and your database.<\/p>\n\n\n\n<p><strong>Try it yourself:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/tidbcloud.com\/free-trial\/?__hstc=86493575.783064bfcc857ae1a573df16c96a21a4.1767977986672.1770396908559.1770408791496.103&amp;__hssc=86493575.12.1770408791496&amp;__hsfp=ef5d7ef781d92d519fb04a5267e98d6c&amp;_gl=1*kvr09p*_gcl_au*NzgzNDI4MDk1LjE3Njc5ODI1NzU.*_ga*MjUyOTQyMTU0LjE3Njc5Nzc5ODQ.*_ga_3JVXJ41175*czE3NzA0MDg3OTAkbzExMSRnMSR0MTc3MDQxMjQ5NCRqNTckbDAkaDE4NzczNTg3OTM.*_ga_ZEL0RNV6R2*czE3NzA0MDkxODckbzEwMCRnMSR0MTc3MDQxMjE2MiRqMzkkbDAkaDA.*_ga_9FRXHHPYVY*czE3NzA0MDg3OTEkbzEwOSRnMSR0MTc3MDQxMjE2MiRqNjAkbDAkaDA.\">Deploy your first TiDB cluster for free<\/a><\/li>\n\n\n\n<li>Learn more about<a href=\"https:\/\/kiro.dev\/\"> Kiro and MCP<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>A technical deep dive into letting an AI reason directly over your database. Food waste is a quiet horror story. Every year, roughly 1.3 billion tons of food are discarded globally, often because we simply forget what\u2019s in the back of our fridges. Half-used onions, forgotten spinach, and that single, lonely tomato\u2014they aren&#8217;t just ingredients; [&hellip;]<\/p>\n","protected":false},"author":336,"featured_media":31792,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[18],"tags":[138,31],"class_list":["post-31789","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-community","tag-ai","tag-tidb-cloud"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png","author_info":{"display_name":"Aishwarya Nathani","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/aishwarya-nathani\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Build Scalable AI: TiDB, Kiro, &amp; Hybrid Data Architecture<\/title>\n<meta name=\"description\" content=\"Build scalable AI with TiDB and Kiro. Use MCP and hybrid data to let AI reason over your database for faster production development.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build Scalable AI: TiDB, Kiro, &amp; Hybrid Data Architecture\" \/>\n<meta property=\"og:description\" content=\"Build scalable AI with TiDB and Kiro. Use MCP and hybrid data to let AI reason over your database for faster production development.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-12T07:18:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-13T15:27:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2026\/02\/11231712\/Banner-2%EF%B9%951-hazel-6.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Aishwarya Nathani\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.pingcap.com\/files\/2026\/02\/11231712\/Banner-2%EF%B9%951-hazel-6.png\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aishwarya Nathani\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\"},\"author\":{\"name\":\"Aishwarya Nathani\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/c4b96e213c1f9fd1670c28362ea60b4d\"},\"headline\":\"Prompt To Production: Building Scalable AI on TiDB with Kiro\",\"datePublished\":\"2026-02-12T07:18:34+00:00\",\"dateModified\":\"2026-02-13T15:27:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\"},\"wordCount\":1442,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png\",\"keywords\":[\"AI\",\"TiDB Cloud\"],\"articleSection\":[\"Community\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\",\"name\":\"Build Scalable AI: TiDB, Kiro, & Hybrid Data Architecture\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png\",\"datePublished\":\"2026-02-12T07:18:34+00:00\",\"dateModified\":\"2026-02-13T15:27:59+00:00\",\"description\":\"Build scalable AI with TiDB and Kiro. Use MCP and hybrid data to let AI reason over your database for faster production development.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png\",\"width\":1800,\"height\":600,\"caption\":\"Build Scalable AI TiDB, Kiro, & Hybrid Data Architecture-banner\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prompt To Production: Building Scalable AI on TiDB with Kiro\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/c4b96e213c1f9fd1670c28362ea60b4d\",\"name\":\"Aishwarya Nathani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"caption\":\"Aishwarya Nathani\"},\"description\":\"Senior Data and AI Engineer at UBS\",\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/aishwarya-nathani\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Build Scalable AI: TiDB, Kiro, & Hybrid Data Architecture","description":"Build scalable AI with TiDB and Kiro. Use MCP and hybrid data to let AI reason over your database for faster production development.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/","og_locale":"ko_KR","og_type":"article","og_title":"Build Scalable AI: TiDB, Kiro, & Hybrid Data Architecture","og_description":"Build scalable AI with TiDB and Kiro. Use MCP and hybrid data to let AI reason over your database for faster production development.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2026-02-12T07:18:34+00:00","article_modified_time":"2026-02-13T15:27:59+00:00","og_image":[{"width":1800,"height":900,"url":"https:\/\/static.pingcap.com\/files\/2026\/02\/11231712\/Banner-2%EF%B9%951-hazel-6.png","type":"image\/png"}],"author":"Aishwarya Nathani","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.pingcap.com\/files\/2026\/02\/11231712\/Banner-2%EF%B9%951-hazel-6.png","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Aishwarya Nathani","Est. reading time":"8\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/"},"author":{"name":"Aishwarya Nathani","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/c4b96e213c1f9fd1670c28362ea60b4d"},"headline":"Prompt To Production: Building Scalable AI on TiDB with Kiro","datePublished":"2026-02-12T07:18:34+00:00","dateModified":"2026-02-13T15:27:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/"},"wordCount":1442,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png","keywords":["AI","TiDB Cloud"],"articleSection":["Community"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/","url":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/","name":"Build Scalable AI: TiDB, Kiro, & Hybrid Data Architecture","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png","datePublished":"2026-02-12T07:18:34+00:00","dateModified":"2026-02-13T15:27:59+00:00","description":"Build scalable AI with TiDB and Kiro. Use MCP and hybrid data to let AI reason over your database for faster production development.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png","width":1800,"height":600,"caption":"Build Scalable AI TiDB, Kiro, & Hybrid Data Architecture-banner"},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Prompt To Production: Building Scalable AI on TiDB with Kiro"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/c4b96e213c1f9fd1670c28362ea60b4d","name":"Aishwarya Nathani","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","caption":"Aishwarya Nathani"},"description":"Senior Data and AI Engineer at UBS","url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/aishwarya-nathani\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/build-scalable-ai-tidb-kiro-hybrid-data-architecture\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"Build Scalable AI TiDB, Kiro, &amp; Hybrid Data Architecture-banner\" src=\"https:\/\/static.pingcap.com\/files\/2026\/02\/11230701\/hazel-bannerforblog-4.png\" loading=\"lazy\" width=1800 height=600 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Community<\/div><\/div><h5 class=\"card-resource__title\">Prompt To Production: Building Scalable AI on TiDB with Kiro<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/31789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/336"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=31789"}],"version-history":[{"count":3,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/31789\/revisions"}],"predecessor-version":[{"id":31859,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/31789\/revisions\/31859"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/31792"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=31789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=31789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=31789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}