<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Docker on Joel Hanson</title>
    <link>https://joelhanson.com/tags/docker/</link>
    <description>Recent content in Docker on Joel Hanson</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>joelhanson025@gmail.com (Joel Hanson)</managingEditor>
    <webMaster>joelhanson025@gmail.com (Joel Hanson)</webMaster>
    <copyright>&amp;copy; Joel Hanson</copyright>
    <lastBuildDate>Sun, 02 Aug 2026 12:00:00 +0530</lastBuildDate><atom:link href="https://joelhanson.com/tags/docker/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Supercharging Your AI: Setting Up RAG with PostgreSQL and pgvector</title>
      <link>https://joelhanson.com/posts/06-setting-up-rag-with-postgre-sql-and-pgvector/</link>
      <pubDate>Mon, 30 Sep 2024 21:28:28 +0530</pubDate>
      <author>joelhanson025@gmail.com (Joel Hanson)</author>
      <guid>https://joelhanson.com/posts/06-setting-up-rag-with-postgre-sql-and-pgvector/</guid>
      <description>Learn how to implement a powerful Retrieval-Augmented Generation (RAG) system using PostgreSQL and pgvector. This comprehensive guide covers everything from setting up a custom PostgreSQL Docker image to creating a fully functional RAG query system with vector embeddings and language model inference.</description>
      
    </item>
    
    <item>
      <title>When One Kafka Partition Takes All the Heat</title>
      <link>https://joelhanson.com/posts/31-when-one-kafka-partition-takes-all-the-heat/</link>
      <pubDate>Sun, 02 Aug 2026 12:00:00 +0530</pubDate>
      <author>joelhanson025@gmail.com (Joel Hanson)</author>
      <guid>https://joelhanson.com/posts/31-when-one-kafka-partition-takes-all-the-heat/</guid>
      <description>Hot partitions show up as lag on one partition, a stressed broker, and consumers that do nothing when you scale out. Confirm the skew, fix the key, and recreate it locally with a Docker Compose demo.</description>
      
    </item>
    
    <item>
      <title>Adding Durable Execution to Flask Applications with Restate</title>
      <link>https://joelhanson.com/posts/23-adding-durable-execution-to-flask-with-restate/</link>
      <pubDate>Sun, 16 Nov 2025 16:00:00 +0530</pubDate>
      <author>joelhanson025@gmail.com (Joel Hanson)</author>
      <guid>https://joelhanson.com/posts/23-adding-durable-execution-to-flask-with-restate/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;The Challenge of Reliable Background Operations&#xA;    &lt;div id=&#34;the-challenge-of-reliable-background-operations&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#the-challenge-of-reliable-background-operations&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Building web applications with Flask is straightforward until you need to handle operations that can fail. Database operations timeout, external APIs become unavailable, and network connections drop. These failures are inevitable in production systems, yet handling them gracefully often requires significant engineering effort.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
