<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tijani Abagaro</title>
    <description>The latest articles on DEV Community by Tijani Abagaro (@tijani_abagaro-genai).</description>
    <link>https://dev.to/tijani_abagaro-genai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4023267%2Fdda54d91-f569-4e7c-8a26-bd11698506cd.png</url>
      <title>DEV Community: Tijani Abagaro</title>
      <link>https://dev.to/tijani_abagaro-genai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tijani_abagaro-genai"/>
    <language>en</language>
    <item>
      <title>Architecting an Enterprise RAG Platform: Shifting from AI Hype to Production Trust on AWS</title>
      <dc:creator>Tijani Abagaro</dc:creator>
      <pubDate>Thu, 09 Jul 2026 23:17:45 +0000</pubDate>
      <link>https://dev.to/tijani_abagaro-genai/architecting-an-enterprise-rag-platform-shifting-from-ai-hype-to-production-trust-on-aws-1ll3</link>
      <guid>https://dev.to/tijani_abagaro-genai/architecting-an-enterprise-rag-platform-shifting-from-ai-hype-to-production-trust-on-aws-1ll3</guid>
      <description>&lt;p&gt;Moving Generative AI from a proof-of-concept sandbox into an enterprise-grade solution requires shifting our engineering focus from &lt;em&gt;what AI can do&lt;/em&gt; to &lt;strong&gt;what enterprises can trust&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Modern organizations generate immense repositories of institutional knowledge—ranging from complex corporate refund policies to intricate regulatory guidelines. While data availability is rarely the issue, &lt;strong&gt;efficiently retrieving it remains a massive operational bottleneck&lt;/strong&gt;. Workforce productivity drops significantly when employees are forced to manually navigate fragmented, disconnected data silos.&lt;/p&gt;

&lt;p&gt;As companies rush to adopt Generative AI to bridge this gap, they encounter a critical barrier: &lt;strong&gt;trust and governance&lt;/strong&gt;. Public, out-of-the-box LLMs operate without internal corporate context and are highly prone to hallucination. For an enterprise, an incorrect or completely fabricated answer introduces unacceptable operational, brand, and regulatory risks.&lt;/p&gt;

&lt;p&gt;To solve this, I designed and open-sourced an end-to-end &lt;strong&gt;Enterprise Refund AI Assistant&lt;/strong&gt;. Instead of relying blindly on a foundation model’s pre-trained data, this platform utilizes a robust, decoupled &lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt; architecture. By separating data ingestion from live inference, the system ensures that every conversational output is strictly anchored, grounded, and fully traceable back to verified, authoritative enterprise documentation.&lt;/p&gt;




&lt;h1&gt;
  
  
  Architectural Topology: The Power of a 100% Serverless Footprint
&lt;/h1&gt;

&lt;p&gt;Rather than provisioning monolithic servers or maintaining idle container clusters, the platform relies on a &lt;strong&gt;100% serverless topology&lt;/strong&gt;. This structural decision guarantees total operational elasticity: the entire environment automatically scales down to zero when idle, eliminating baseline infrastructure costs.&lt;/p&gt;

&lt;p&gt;Instead of a standard service catalog, the system is segmented into functional layers chosen specifically for isolation, security, and low operational overhead.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Distribution Edge:&lt;/strong&gt; Amazon CloudFront securely distributes a web interface hosted on Amazon S3, reducing latency while protecting backend resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decoupled Compute Layer:&lt;/strong&gt; AWS Lambda orchestrates backend processing without requiring server management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector Search &amp;amp; Knowledge Core:&lt;/strong&gt; Amazon OpenSearch Serverless provides scalable semantic indexing and vector search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed Foundation Models:&lt;/strong&gt; Amazon Bedrock delivers Titan Text Embeddings V2 for embeddings and Amazon Nova Lite for grounded response generation.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Decoupling the Core Pipelines
&lt;/h1&gt;

&lt;p&gt;To maximize throughput while protecting inference latency, the platform completely separates asynchronous document ingestion from synchronous user inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pipeline 1 — Event-Driven Document Ingestion
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;S3 Document Upload
        │
        ▼
S3 Event Notification
        │
        ▼
Lambda Processor
        │
        ▼
Titan Text Embeddings V2
        │
        ▼
OpenSearch Serverless
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Uploading a corporate policy PDF into Amazon S3 automatically triggers an ObjectCreated event.&lt;/li&gt;
&lt;li&gt;Lambda extracts the document and chunks it using a &lt;strong&gt;1,000-character window with a 200-character overlap&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Each chunk is converted into a vector embedding using Amazon Bedrock.&lt;/li&gt;
&lt;li&gt;Embeddings, metadata, and source text are indexed into OpenSearch Serverless.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Pipeline 2 — Live RAG Inference
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Question
      │
      ▼
API Gateway
      │
      ▼
Lambda
      │
      ▼
OpenSearch Vector Search
      │
      ▼
Context-Augmented Prompt
      │
      ▼
Amazon Nova Lite
      │
      ▼
Grounded Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;API Gateway routes the request to the inference Lambda.&lt;/li&gt;
&lt;li&gt;The user query is embedded and matched against OpenSearch using semantic similarity.&lt;/li&gt;
&lt;li&gt;Relevant documentation is injected into a constrained prompt.&lt;/li&gt;
&lt;li&gt;Amazon Nova Lite generates a response using only the supplied context.&lt;/li&gt;
&lt;li&gt;Conversation history is stored in DynamoDB for multi-turn interactions.&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  Infrastructure as Code &amp;amp; GitOps
&lt;/h1&gt;

&lt;p&gt;Every AWS resource is provisioned declaratively using &lt;strong&gt;Terraform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Remote state management is implemented using Amazon S3 together with DynamoDB state locking.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;terraform&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;backend&lt;/span&gt; &lt;span class="s2"&gt;"s3"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;bucket&lt;/span&gt;         &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"enterprise-refund-ai-tfstate"&lt;/span&gt;
    &lt;span class="nx"&gt;key&lt;/span&gt;            &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"prod/platform.tfstate"&lt;/span&gt;
    &lt;span class="nx"&gt;region&lt;/span&gt;         &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;
    &lt;span class="nx"&gt;dynamodb_table&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"enterprise-refund-ai-tflocks"&lt;/span&gt;
    &lt;span class="nx"&gt;encrypt&lt;/span&gt;        &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub Actions automates deployment using GitHub OpenID Connect (OIDC), eliminating long-lived AWS credentials and enabling secure, short-lived role assumption.&lt;/p&gt;




&lt;h1&gt;
  
  
  Benchmark Performance &amp;amp; Production Results
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These benchmark results were obtained in a controlled demonstration environment and are intended to illustrate the platform's performance characteristics.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Performance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Average end-to-end latency:&lt;/strong&gt; 1.15 seconds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector search latency:&lt;/strong&gt; ~120 ms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nova Lite response generation:&lt;/strong&gt; ~850 ms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document ingestion:&lt;/strong&gt; Under 4.2 seconds for a standard 20-page enterprise policy&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cost Efficiency
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Idle compute cost:&lt;/strong&gt; $0.00/month (serverless compute)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Estimated monthly orchestration cost:&lt;/strong&gt; Less than &lt;strong&gt;$45&lt;/strong&gt; at approximately &lt;strong&gt;10,000 queries/day&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Estimated savings:&lt;/strong&gt; ~75% compared to always-on infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Operational Governance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Static AWS credentials:&lt;/strong&gt; None (OIDC only)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hallucination behavior:&lt;/strong&gt; During benchmark testing, out-of-scope questions returned &lt;em&gt;"I cannot find that information in the approved documentation"&lt;/em&gt; rather than generating unsupported answers.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Senior Engineering Challenges &amp;amp; Resolutions
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Challenge 1 — Chained Latency
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;API Gateway → Lambda → Bedrock → OpenSearch → Bedrock creates multiple network hops that can increase latency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modular Lambda functions&lt;/li&gt;
&lt;li&gt;Python 3.12 runtime&lt;/li&gt;
&lt;li&gt;Optimized memory allocation&lt;/li&gt;
&lt;li&gt;boto3 connection reuse&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Challenge 2 — OpenSearch Serverless Security
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenSearch Serverless separates security, network, and data access policies, making Infrastructure as Code more complex.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Terraform dynamically provisions IAM execution roles and injects them directly into OpenSearch data access policies during deployment, eliminating manual configuration.&lt;/p&gt;




&lt;h1&gt;
  
  
  Explore the Blueprint
&lt;/h1&gt;

&lt;p&gt;The complete production-ready implementation is available as open source.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Tijani-Abagaro-GenAI-Cloud/enterprise-refund-ai-showcase" rel="noopener noreferrer"&gt;https://github.com/Tijani-Abagaro-GenAI-Cloud/enterprise-refund-ai-showcase&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎥 YouTube Walkthrough
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/OCUfAaRI8Ng" rel="noopener noreferrer"&gt;https://youtu.be/OCUfAaRI8Ng&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I welcome feedback from the AWS and AI community. If you've built enterprise Generative AI systems, I'd love to hear how you're approaching retrieval, grounding, security, and operational scalability.&lt;/p&gt;

&lt;p&gt;If you find this project useful, I'd appreciate your feedback, suggestions, or a ⭐ on GitHub.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>architecture</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
