<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Microservices on EBKAC.ORG</title>
    <link>https://ebkac.org/tags/microservices/</link>
    <description>Recent content in Microservices on EBKAC.ORG</description>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <lastBuildDate>Sat, 21 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ebkac.org/tags/microservices/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Building BuchhalterPython: Types, Tests, and a Hallucinated API Key (Part 4)</title>
      <link>https://ebkac.org/blog/2026-03-21-buchhalter-tdd-and-types/</link>
      <pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://ebkac.org/blog/2026-03-21-buchhalter-tdd-and-types/</guid>
      <description>&lt;p&gt;After &lt;a href=&#34;https://ebkac.org/blog/2026-03-20-buchhalter-phase3-infrastructure/&#34;&gt;Part 3&lt;/a&gt; left four LXC containers running and the &lt;code&gt;src/&lt;/code&gt; directories empty, Phase 4 starts writing actual code. The first day of implementation produces two closed issues, one rejected framework, and one bug that had already been caught once.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Part 4 of the &lt;a href=&#34;https://ebkac.org/blog/2026-03-18-buchhalter-agentic-setup/&#34;&gt;Building BuchhalterPython&lt;/a&gt; series.&lt;/strong&gt; &lt;a href=&#34;https://ebkac.org/blog/2026-03-20-buchhalter-phase3-infrastructure/&#34;&gt;Part 3&lt;/a&gt; covers provisioning four LXC containers with OpenTofu and Ansible.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;the-bug-that-appeared-twice&#34;&gt;The Bug That Appeared Twice&lt;/h2&gt;&#xA;&lt;p&gt;Issue #12 had already documented a type error in the Pydantic model for the Paperless API: &lt;code&gt;tags: list[str]&lt;/code&gt; instead of &lt;code&gt;list[int]&lt;/code&gt;. Paperless returns tag IDs as integers. The model had used strings. That bug was fixed, documented in &lt;code&gt;llm/domain-knowledge/01-paperless-api-reference.md&lt;/code&gt;, and noted in &lt;code&gt;ERROR_PATTERNS.md&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building BuchhalterPython: Architecture Before the First Commit (Part 2)</title>
      <link>https://ebkac.org/blog/2026-03-19-buchhalter-architecture-decisions/</link>
      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://ebkac.org/blog/2026-03-19-buchhalter-architecture-decisions/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Part 2 of the BuchhalterPython series.&lt;/strong&gt; &lt;a href=&#34;https://ebkac.org/blog/2026-03-18-buchhalter-agentic-setup/&#34;&gt;Part 1&lt;/a&gt; covers how we set up agentic infrastructure — six specialised agents, golden standards, and token optimisation — before writing any application code.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;We spent a full day on architecture before writing a single line of business logic. No features, no endpoints, no database schemas. Just decisions. By the end of that day, we had five architectural choices that each prevented at least one production failure. Three of those failures would have been silent.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building BuchhalterPython: How We Set Up Agentic Infrastructure Before Writing Code</title>
      <link>https://ebkac.org/blog/2026-03-18-buchhalter-agentic-setup/</link>
      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://ebkac.org/blog/2026-03-18-buchhalter-agentic-setup/</guid>
      <description>&lt;p&gt;Before writing the first line of application code for BuchhalterPython, we invested a few hours designing and building agentic infrastructure. That&amp;rsquo;s one of the things AI fundamentally changes: what used to take weeks of scaffolding and deliberation now takes an afternoon. This wasn&amp;rsquo;t bureaucracy dressed up as planning. It was the difference between a project that ships and one that collapses under its own ambition.&lt;/p&gt;&#xA;&lt;p&gt;The temptation is always the same: start coding immediately. You know what you want to build. You&amp;rsquo;ve sketched the data model on a whiteboard. Why not just start? The honest answer: because infrastructure becomes infinitely more expensive to change after code depends on it.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
