<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Java on Joshua Antony | Tech Blog</title><link>https://blogs.joshuaantony.com/tags/java/</link><description>Recent content in Java on Joshua Antony | Tech Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 06 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blogs.joshuaantony.com/tags/java/index.xml" rel="self" type="application/rss+xml"/><item><title>Go's Developer Experience Problem: Why Spring Boot Still Wins for Business Applications</title><link>https://blogs.joshuaantony.com/posts/go-developer-experience-problem/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid>https://blogs.joshuaantony.com/posts/go-developer-experience-problem/</guid><description>Go is a fine language for infrastructure tooling. But for the 90% of software that is business applications, Spring Boot&amp;rsquo;s developer experience is dramatically superior &amp;ndash; and AI-assisted development has eliminated the last argument against Java&amp;rsquo;s annotation-driven model.</description></item><item><title>Overengineering Microservices: When Smart Decisions Compound Into Complexity</title><link>https://blogs.joshuaantony.com/posts/overengineering-microservices/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid>https://blogs.joshuaantony.com/posts/overengineering-microservices/</guid><description>HAProxy sidecars for mTLS. Hystrix for circuit breaking. Apache Camel between layers within the same service. Six API versions. A mandated common framework. A squash merge ban. Each decision was defensible. Combined, they created a system that took three months to onboard into.</description></item><item><title>Hybris OCC: A REST Facade Over a Stateful Monolith</title><link>https://blogs.joshuaantony.com/posts/hybris-occ-rest-facade-over-stateful-monolith/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://blogs.joshuaantony.com/posts/hybris-occ-rest-facade-over-stateful-monolith/</guid><description>SAP Commerce OCC promises a stateless REST API for headless commerce. Underneath, every request hydrates an HTTP session and routes through the same stateful facades built for the JSP storefront. The API is stateless in contract but stateful in implementation.</description></item><item><title>Hybris Populator Framework: Design Flaws and Memory Pitfalls</title><link>https://blogs.joshuaantony.com/posts/hybris-populator-framework-design-flaws/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><guid>https://blogs.joshuaantony.com/posts/hybris-populator-framework-design-flaws/</guid><description>The SAP Commerce Converter/Populator pattern optimized for extensibility at the cost of predictability. Deep chaining, invisible runtime graphs, and JVM heap exhaustion are the consequences.</description></item><item><title>The Hybris Persistence Layer: Why a Generation of Commerce Developers Learned to Fear ORMs</title><link>https://blogs.joshuaantony.com/posts/hybris-persistence-layer-fear-of-orms/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://blogs.joshuaantony.com/posts/hybris-persistence-layer-fear-of-orms/</guid><description>Hybris gave engineers a beautifully simple API &amp;ndash; modelService.create(), modelService.save(), modelService.remove(). Underneath, it fired hundreds of invisible queries, consumed unbounded memory, made bulk operations impossibly slow, and refused to let you delete data. This is why people are scared of ORMs.</description></item><item><title>Playwright Is Not a Backend API Testing Tool</title><link>https://blogs.joshuaantony.com/posts/playwright-is-not-a-backend-api-testing-tool/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://blogs.joshuaantony.com/posts/playwright-is-not-a-backend-api-testing-tool/</guid><description>Using Playwright for backend API testing in a Spring Boot repo is not reuse &amp;ndash; it&amp;rsquo;s dual-stack maintenance. The right tool depends on what you&amp;rsquo;re verifying, not what you already have installed.</description></item></channel></rss>