<?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: Matthew Evan Eichler</title>
    <description>The latest articles on DEV Community by Matthew Evan Eichler (@bijkler).</description>
    <link>https://dev.to/bijkler</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%2F2558136%2F73264639-79e4-4da1-bb96-362aaf5f5ca2.jpg</url>
      <title>DEV Community: Matthew Evan Eichler</title>
      <link>https://dev.to/bijkler</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bijkler"/>
    <language>en</language>
    <item>
      <title>AWS Bedrock Managed Knowledge Bases: Should We Use Them?</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Wed, 01 Jul 2026 15:53:28 +0000</pubDate>
      <link>https://dev.to/bijkler/aws-bedrock-managed-knowledge-bases-should-we-use-them-3119</link>
      <guid>https://dev.to/bijkler/aws-bedrock-managed-knowledge-bases-should-we-use-them-3119</guid>
      <description>&lt;p&gt;AWS released &lt;strong&gt;Managed Knowledge Bases for Amazon Bedrock&lt;/strong&gt; on 17 June 2026. The feature significantly reduces the operational complexity of building Retrieval-Augmented Generation (RAG) solutions by allowing Bedrock to manage the vector storage, indexing, embeddings, and retrieval infrastructure on your behalf.&lt;/p&gt;

&lt;p&gt;For teams looking to deliver an Agent Core proof of concept or their first production RAG workload quickly, this can be a compelling option. However, there are some important trade-offs to understand before committing to the managed approach.&lt;/p&gt;

&lt;p&gt;Traditionally, a Bedrock Knowledge Base required a customer-managed vector store such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenSearch Serverless&lt;/li&gt;
&lt;li&gt;OpenSearch Managed Clusters&lt;/li&gt;
&lt;li&gt;Aurora PostgreSQL with pgvector&lt;/li&gt;
&lt;li&gt;Pinecone&lt;/li&gt;
&lt;li&gt;DocumentDB&lt;/li&gt;
&lt;li&gt;Other supported vector databases
With a Managed Knowledge Base, Bedrock handles the underlying vector infrastructure and embedding model selection for you. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Creating one from the AWS CLI is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws bedrock-agent create-knowledge-base &lt;span class="se"&gt;\&lt;/span&gt;
      &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="s2"&gt;"my-managed-kb"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
      &lt;span class="nt"&gt;--role-arn&lt;/span&gt; &lt;span class="s2"&gt;"arn:aws:iam::&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;AWS_ACCOUNT_ID&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;:role/service-role/AmazonBedrockExecutionRoleForKnowledgeBase_ihv1p"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
      &lt;span class="nt"&gt;--knowledge-base-configuration&lt;/span&gt; &lt;span class="s1"&gt;'{
        "type": "MANAGED",
        "managedKnowledgeBaseConfiguration": {
          "embeddingModelType": "MANAGED"
        }
      }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Advantages
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Lower operational overhead
&lt;/h2&gt;

&lt;p&gt;There is no need to provision, secure, monitor, patch, or scale a separate vector database.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lower costs
&lt;/h2&gt;

&lt;p&gt;S3 storage is cheaper than database storage.&amp;nbsp; Pay only for each ingestion and retrieval operation.&amp;nbsp; Indexing and searching compute are free.&amp;nbsp; No 24/7 server costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Faster time-to-value
&lt;/h2&gt;

&lt;p&gt;Managed Knowledge Bases make it possible to stand up a RAG solution in minutes rather than days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automatic embedding management
&lt;/h2&gt;

&lt;p&gt;Bedrock manages embedding selection and indexing, reducing the number of architectural decisions required from development teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost-effective for smaller workloads
&lt;/h2&gt;

&lt;p&gt;The managed model can be attractive for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proofs of Concept&lt;/li&gt;
&lt;li&gt;Departmental knowledge bases&lt;/li&gt;
&lt;li&gt;Agent Core pilots&lt;/li&gt;
&lt;li&gt;Workloads with highly variable usage patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Good fit for multiple small knowledge bases
&lt;/h2&gt;

&lt;p&gt;Organizations experimenting with several independent knowledge domains can often benefit from the simplified operational model.&lt;/p&gt;

&lt;h1&gt;
  
  
  Disadvantages
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Less control
&lt;/h2&gt;

&lt;p&gt;The primary trade-off is reduced visibility and control over the underlying vector store and retrieval implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Potential performance limitations
&lt;/h2&gt;

&lt;p&gt;Organizations with extremely high query-per-second (QPS) requirements may still prefer dedicated OpenSearch-based solutions where indexing, scaling, and query performance can be tuned explicitly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fewer advanced search capabilities
&lt;/h2&gt;

&lt;p&gt;If your use case requires sophisticated filtering, custom ranking strategies, or hybrid lexical/vector search, a self-managed OpenSearch solution may remain the better choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure-as-Code support is not yet mature
&lt;/h2&gt;

&lt;p&gt;At the time of writing, Managed Knowledge Bases are available through the Bedrock APIs and Console, but CloudFormation and CDK support have not yet fully caught up. &lt;/p&gt;

&lt;h1&gt;
  
  
  CloudFormation and CDK Considerations
&lt;/h1&gt;

&lt;p&gt;One of the biggest surprises for infrastructure engineers is the current gap between the Bedrock APIs and CloudFormation support.&lt;/p&gt;

&lt;p&gt;While a Managed Knowledge Base can be created through the Bedrock API and AWS CLI, there is currently no equivalent CloudFormation resource definition that maps cleanly to the managed configuration. This means CDK users cannot yet create Managed Knowledge Bases using standard CDK constructs.&lt;/p&gt;

&lt;p&gt;For teams that require full Infrastructure-as-Code automation, a common workaround is a Lambda-backed Custom Resource that invokes the Bedrock API during deployment.&lt;/p&gt;

&lt;p&gt;This situation is not unusual for newly released AWS services. Historically, CloudFormation and CDK support often follow shortly after the underlying service APIs become available.&lt;/p&gt;

&lt;h1&gt;
  
  
  Recommendation
&lt;/h1&gt;

&lt;p&gt;If your goal is to deliver a RAG-enabled Agent Core solution quickly and with minimal operational overhead, a Managed Knowledge Base is currently the most attractive starting point.&lt;/p&gt;

&lt;p&gt;If, however, your organization requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced search capabilities&lt;/li&gt;
&lt;li&gt;Full infrastructure control&lt;/li&gt;
&lt;li&gt;Sophisticated indexing strategies&lt;/li&gt;
&lt;li&gt;Complete CloudFormation/CDK automation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... then a traditional OpenSearch-based Knowledge Base remains the more flexible option.&lt;/p&gt;

&lt;h1&gt;
  
  
  TL;DR
&lt;/h1&gt;

&lt;p&gt;Use Managed Knowledge Bases when speed, simplicity, and lower operational overhead are more important than infrastructure control.&lt;/p&gt;

&lt;h1&gt;
  
  
  Postscript: Cloud Formation and CDK Engineering Insights
&lt;/h1&gt;

&lt;p&gt;As with most new AWS Products, the Cloud Formation types and CDK support comes at some later date; forget including this in your codebase unless you want to spend the time writing a Lambda backed Custom Resource.&lt;/p&gt;

&lt;p&gt;You might find it interesting that the original OpenSearch Serverless Vector Collection also requires a Custom Resource in CDK.&amp;nbsp; The reason is the cluster is created using a Cloud Formation type but there are no default indexes defined.&amp;nbsp; An "on-the-fly"Lambda is created which initialises the cluster with an index that the Knowledge Base can use.&lt;/p&gt;

&lt;p&gt;If you want to take a deep dive into this approach try Dirk Michel's &lt;a href="https://github.com/pipelineburst" rel="noopener noreferrer"&gt;pipelineburst&lt;/a&gt; example from his Bedrock examples repository in his CDK &lt;a href="https://github.com/pipelineburst/bedrock/tree/main/stacks" rel="noopener noreferrer"&gt;stacks section&lt;/a&gt; (written about 2 years ago).&lt;/p&gt;

</description>
      <category>aws</category>
      <category>bedrock</category>
      <category>knowledgebase</category>
    </item>
    <item>
      <title>swiss tables in go</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Wed, 26 Feb 2025 10:04:55 +0000</pubDate>
      <link>https://dev.to/bijkler/swiss-tables-in-go-5d7e</link>
      <guid>https://dev.to/bijkler/swiss-tables-in-go-5d7e</guid>
      <description></description>
      <category>database</category>
      <category>programming</category>
    </item>
    <item>
      <title>AWS CDK Typescript: Adding Extra Nodes to Study Kubernetes Availability</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Wed, 05 Feb 2025 11:06:56 +0000</pubDate>
      <link>https://dev.to/bijkler/aws-cdk-typescript-adding-extra-nodes-to-study-kubernetes-availability-5hj5</link>
      <guid>https://dev.to/bijkler/aws-cdk-typescript-adding-extra-nodes-to-study-kubernetes-availability-5hj5</guid>
      <description>&lt;p&gt;This installment of the AWS CDK Typescript code for setting up an environment for studying Kubernetes Fundamentals (&lt;a href="https://trainingportal.linuxfoundation.org/courses/kubernetes-fundamentals-lfs258" rel="noopener noreferrer"&gt;course LFS258 from the Linux/Cloud Native Foundation&lt;/a&gt;) shows how to easily add three extra EC2 instances for playing with higher availability options for your learning Kubenetes cluster.&lt;/p&gt;

&lt;p&gt;I used &lt;code&gt;extra1&lt;/code&gt; for the HA Proxy then &lt;code&gt;extra2&lt;/code&gt; and &lt;code&gt;extra3&lt;/code&gt; to join Control Plane Nodes with the cluster.  You can, of course, play with these extra instances as you will:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;kubectl get nodes
NAME     STATUS   ROLES           AGE     VERSION
&lt;span class="nb"&gt;cp       &lt;/span&gt;Ready    control-plane   21d     v1.31.1
extra2   Ready    control-plane   4d20h   v1.30.9
extra3   Ready    control-plane   4d20h   v1.30.9
k8swk1   Ready    control-plane   21d     v1.31.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;a href="https://github.com/aventinesolutions/lfx-study-aws-cdk-kubernetes/pull/4" rel="noopener noreferrer"&gt;Pull Request #4&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>awscdk</category>
      <category>typescript</category>
      <category>kubernetesfundamentals</category>
      <category>lfs258</category>
    </item>
    <item>
      <title>I'm GitOps Certified</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Tue, 04 Feb 2025 19:38:28 +0000</pubDate>
      <link>https://dev.to/bijkler/im-gitops-certified-e0d</link>
      <guid>https://dev.to/bijkler/im-gitops-certified-e0d</guid>
      <description>&lt;p&gt;🧠 I'm &lt;a href="https://www.credly.com/badges/d00bc127-6d0d-4527-b185-0d99c8e9b085/public_url" rel="noopener noreferrer"&gt;GitOps with Argo Certified (Fundamentals) from Codefresh&lt;/a&gt;, check out the training and certification. 🎉🥳&lt;/p&gt;

</description>
      <category>certification</category>
      <category>gitops</category>
      <category>argocd</category>
      <category>codefresh</category>
    </item>
    <item>
      <title>AWS CDK Typescript: Adding Custom Initialisation to EC2 Instances</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Wed, 22 Jan 2025 11:06:39 +0000</pubDate>
      <link>https://dev.to/bijkler/aws-cdk-typescript-adding-custom-initialisation-to-ec2-instances-5hf9</link>
      <guid>https://dev.to/bijkler/aws-cdk-typescript-adding-custom-initialisation-to-ec2-instances-5hf9</guid>
      <description>&lt;p&gt;In my last post, I introduced an AWS CDK Typescript example repository which can build and destroy two EC2 instances if you are taking the &lt;a href="https://training.linuxfoundation.org/training/kubernetes-fundamentals/" rel="noopener noreferrer"&gt;Linux Foundation LFS258 Kubernetes Fundamentals&lt;/a&gt; self-paced course.  You can work on the course and tear down the Stacks at the end of the day to avoid any extra Cloud Costs.&lt;/p&gt;

&lt;p&gt;But doing this over and over again can be tedious setting up the Ubuntu packages everytime you start the next day over.  This is where the User Data for AWS EC2 virtuals machines comes in.  You can introduce a script that gets executed each time a new EC2 instance is created, sparing you some extra time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/aventinesolutions/lfx-study-aws-cdk-kubernetes/pull/3/files" rel="noopener noreferrer"&gt;aventinesolutions/lfx-study-aws-cdk-kubernetes Pull Request #3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this case,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We first want to prepare our Ubuntu boxes with some changes to system configuration and ensure a couple of modules are loaded.&lt;/li&gt;
&lt;li&gt;We also use &lt;code&gt;apt&lt;/code&gt; to fully update all packages&lt;/li&gt;
&lt;li&gt;Then we set up the package signing keys in a GnuPG keyring. &lt;/li&gt;
&lt;li&gt;Next, we install the Docker, Kubernetes and Helm packages required before we can start building our cluster according to the course.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After the Cloud Formation Stack has completed, how do I know my initialisation script worked correctly?  I found the output in &lt;code&gt;/var/log/cloud-init-output.log&lt;/code&gt; ...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
Preparing to unpack .../helm_3.16.3-1_amd64.deb ...
Unpacking helm (3.16.3-1) ...
Setting up helm (3.16.3-1) ...
Processing triggers for man-db (2.10.2-1) ...
... etc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can use this as a pattern when you need also need a few set-up customisations for the EC2 image you use.  However, if you have many   changes from your chosen base image, then it would probably scale-up better to create your own custom Amazon Machine Image [AMI] from an EC2 instance that you have thoroughly tested (refer to this &lt;a href="https://dev.to/matrey/build-your-own-ubuntu-ami-4k9h"&gt;post "Build Your Own Ubuntu AMI"&lt;/a&gt; from &lt;a class="mentioned-user" href="https://dev.to/matrey"&gt;@matrey&lt;/a&gt; Mathieu Rey)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html" rel="noopener noreferrer"&gt;Run Commands When You Launch an EC2 Instance with User Data Input&lt;/a&gt; on AWS Docs&lt;/p&gt;

</description>
      <category>awscdk</category>
      <category>typescript</category>
      <category>userdata</category>
    </item>
    <item>
      <title>AWS CDK Typescript Simple Project for Cloud Formation of Resources Required for Kubernetes Study</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Mon, 30 Dec 2024 12:27:34 +0000</pubDate>
      <link>https://dev.to/bijkler/aws-cdk-typescript-simple-project-for-cloud-formation-of-resources-required-for-kubernetes-study-192n</link>
      <guid>https://dev.to/bijkler/aws-cdk-typescript-simple-project-for-cloud-formation-of-resources-required-for-kubernetes-study-192n</guid>
      <description>&lt;p&gt;This repository demonstrates using the AWS Cloud Development Kit (CDK) to build infrastructure for self-paced Kubernetes courses and Linux Foundation certifications. It showcases cross-stack dependencies, where the VPC and security groups are defined in a separate stack from the compute resources. This approach avoids the potential for unintended destruction often associated with nested stacks, especially in complex CloudFormation deployments. The Kubernetes node scaling is easily configurable to accommodate advanced courses (e.g., three worker and three control plane nodes). Developed using JetBrains IntelliJ Ultimate. Feedback welcome!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/aventinesolutions/lfx-study-aws-cdk-kubernetes" rel="noopener noreferrer"&gt;aventinesolutions/lfx-study-aws-cdk-kubernetes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>awscdk</category>
      <category>kubernetes</category>
      <category>cloudformation</category>
      <category>learning</category>
    </item>
    <item>
      <title>Rust is Still Promising as a Replacement for C++</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Fri, 20 Dec 2024 16:30:33 +0000</pubDate>
      <link>https://dev.to/bijkler/rust-is-still-promising-as-a-replacement-for-c-3aec</link>
      <guid>https://dev.to/bijkler/rust-is-still-promising-as-a-replacement-for-c-3aec</guid>
      <description>&lt;p&gt;&lt;a href="https://www.jetbrains.com/lp/devecosystem-2024" rel="noopener noreferrer"&gt;Jet Brains Developers' Survey for 2024&lt;/a&gt; ... Rust is still promising as a memory safe replacement for C++ with the highest popularily, along with Go Lang, among Developers who "plan to adopt a new language." Both languages have robust concurrency in mind.&lt;/p&gt;

</description>
      <category>developerssurvey2024</category>
      <category>jetbrains</category>
    </item>
    <item>
      <title>Multiple Stacks in AWS CDK (Typescript)</title>
      <dc:creator>Matthew Evan Eichler</dc:creator>
      <pubDate>Wed, 11 Dec 2024 14:49:50 +0000</pubDate>
      <link>https://dev.to/bijkler/multiple-stacks-in-aws-cdk-typescript-bic</link>
      <guid>https://dev.to/bijkler/multiple-stacks-in-aws-cdk-typescript-bic</guid>
      <description>&lt;p&gt;It is possible to build multiple, separate Cloud Formation Stacks in a single AWS CDK project.  Perhaps that is better when scaling up ... I mean, does this avoid accidental destruction when using Nested Stacks? &lt;a href="https://docs.aws.amazon.com/cdk/v2/guide/stack_how_to_create_multiple_stacks.html" rel="noopener noreferrer"&gt;How to Create Multiple Stacks&lt;/a&gt;&lt;/p&gt;

</description>
      <category>awscdk</category>
      <category>devops</category>
      <category>agilearchitecture</category>
    </item>
  </channel>
</rss>
