<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Springboot on Pauls Blog</title><link>https://prule.github.io/pauls-blog/tags/springboot/</link><description>Recent content in Springboot on Pauls Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 27 May 2026 18:36:21 +1000</lastBuildDate><atom:link href="https://prule.github.io/pauls-blog/tags/springboot/index.xml" rel="self" type="application/rss+xml"/><item><title>Evaluating bank-core v2-openspec-claude</title><link>https://prule.github.io/pauls-blog/post/coding/2026/evaluating-bank-core-v2-openspec-claude/</link><pubDate>Wed, 27 May 2026 00:00:00 +1000</pubDate><guid>https://prule.github.io/pauls-blog/post/coding/2026/evaluating-bank-core-v2-openspec-claude/</guid><description>&lt;div class="notice info"&gt;
 &lt;div class="notice-title"&gt;GitHub&lt;/div&gt;
 &lt;div class="notice-content"&gt;
 &lt;a href="https://github.com/prule/bank-example/tree/v2-openspec-claude" target="_blank" rel="noopener"&gt;https://github.com/prule/bank-example/tree/v2-openspec-claude&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;div class="notice info"&gt;
 &lt;div class="notice-title"&gt;Previous episode&lt;/div&gt;
 &lt;div class="notice-content"&gt;
 &lt;a href="https://prule.github.io/pauls-blog/post/coding/2026/evaluating-bank-core-v1-basic/" target="_blank" rel="noopener"&gt;Evaluating bank-core v1-basic&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Following on from the &lt;code&gt;v1-basic&lt;/code&gt; version of my bank-example, I decided to take the generated code and use it as a basis for a new version, &lt;code&gt;v2-claude&lt;/code&gt;. This time, I wanted to see how well I could use AI, specifically Anthropic&amp;rsquo;s Claude, to help me build out a more complete application, using a specification-driven approach with OpenSpec. This blog post documents my journey, the successes, the bumps in the road, and my overall impressions.&lt;/p&gt;</description></item><item><title>Evaluating bank-core v1-basic: Locking, Concurrency, and the Limits of Web-Prompted AI</title><link>https://prule.github.io/pauls-blog/post/coding/2026/evaluating-bank-core-v1-basic/</link><pubDate>Sun, 24 May 2026 00:00:00 +1000</pubDate><guid>https://prule.github.io/pauls-blog/post/coding/2026/evaluating-bank-core-v1-basic/</guid><description>&lt;p&gt;&lt;code&gt;bank-core&lt;/code&gt; version &lt;code&gt;v1-basic&lt;/code&gt; successfully demonstrates deadlock-free pessimistic database locking and high-throughput $O(1)$ ledger validation, but suffers from anemic procedural layers typical of raw browser-prompted AI code. To fix these leaky boundaries, the upcoming &lt;code&gt;v2&lt;/code&gt; will pivot to spec-driven development utilizing &lt;strong&gt;Claude Code&lt;/strong&gt; to enforce domain-driven isolation.&lt;/p&gt;
&lt;div class="notice info"&gt;
 &lt;div class="notice-title"&gt;GitHub&lt;/div&gt;
 &lt;div class="notice-content"&gt;
 &lt;a href="https://github.com/prule/bank-example/tree/v1-basic" target="_blank" rel="noopener"&gt;https://github.com/prule/bank-example/tree/v1-basic&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;div class="notice info"&gt;
 &lt;div class="notice-title"&gt;Next episode&lt;/div&gt;
 &lt;div class="notice-content"&gt;
 &lt;a href="https://prule.github.io/pauls-blog/post/coding/2026/evaluating-bank-core-v2-openspec-claude/" target="_blank" rel="noopener"&gt;Evaluating bank-core v2-openspec-claude&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;h2 id="the-core-wins-openapi-locking-and-db-auditing"&gt;The Core Wins: OpenAPI, Locking, and DB Auditing&lt;/h2&gt;
&lt;p&gt;The primary goal of &lt;code&gt;v1-basic&lt;/code&gt; was to refresh my memory with respect to java and spring boot after being in the Kotlin/Ktor ecosystem for a while.&lt;/p&gt;</description></item></channel></rss>