<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Engineering With Java]]></title><description><![CDATA[Engineering With Java: Real-World Java and spring Boot Newsletter for Backend Engineers,
Real-World  Problems, Explained Through Interview Questions]]></description><link>https://javabulletin.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!4uxV!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eea5e68-d01f-4cc9-ab7f-92945fec737b_488x488.png</url><title>Engineering With Java</title><link>https://javabulletin.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 20 Aug 2026 15:15:19 GMT</lastBuildDate><atom:link href="https://javabulletin.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Suraj Mishra]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[javabulletin@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[javabulletin@substack.com]]></itunes:email><itunes:name><![CDATA[Suraj Mishra]]></itunes:name></itunes:owner><itunes:author><![CDATA[Suraj Mishra]]></itunes:author><googleplay:owner><![CDATA[javabulletin@substack.com]]></googleplay:owner><googleplay:email><![CDATA[javabulletin@substack.com]]></googleplay:email><googleplay:author><![CDATA[Suraj Mishra]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Senior Java Interview: Bug Fix in a Generic Repository]]></title><description><![CDATA[Understanding wildcard variance in Java generics &#8212; and why you can never have both safe reads and safe writes at once]]></description><link>https://javabulletin.substack.com/p/senior-java-interview-bug-fix-in</link><guid isPermaLink="false">https://javabulletin.substack.com/p/senior-java-interview-bug-fix-in</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Thu, 20 Aug 2026 13:02:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!thHH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Scenario</h2><p>Your team has built a generic repository used by several Spring Boot services for caching reference data before it&#8217;s persisted.</p><p>A teammate recently tried to reuse it for a new feature and hit a compilation error.</p><p>You&#8217;re reviewing their pull request.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!thHH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!thHH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 424w, https://substackcdn.com/image/fetch/$s_!thHH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 848w, https://substackcdn.com/image/fetch/$s_!thHH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 1272w, https://substackcdn.com/image/fetch/$s_!thHH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!thHH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png" width="1390" height="1242" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1242,&quot;width&quot;:1390,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163029,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/196370998?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!thHH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 424w, https://substackcdn.com/image/fetch/$s_!thHH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 848w, https://substackcdn.com/image/fetch/$s_!thHH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 1272w, https://substackcdn.com/image/fetch/$s_!thHH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe19753c2-23b6-4337-a8b2-e03eff08c2b2_1390x1242.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The new feature does this:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">Repository&lt;User&gt; repository = new Repository&lt;&gt;();

List&lt;AdminUser&gt; admins = List.of(
        new AdminUser("Alice"),
        new AdminUser("Bob")
);

repository.saveAll(admins);   // Compilation error</code></pre></div><div><hr></div><p>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;<strong>join 8300+ subscribers</strong> for hand-crafted, no-fluff content.</p><p><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Upgrade to paid now (60% discount) and get the annual membership at $50/year </mark></strong><em><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">forever </mark></strong></em><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">that is ~ $4/mo.</mark></strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 79+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ysvT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>Why this code doesn't compile?</h3><p>A common misconception is:</p><p>"AdminUser extends User, so List&lt;AdminUser&gt; should extend List&lt;User&gt;."</p><p>That's not how Java generics work. Generics are invariant.</p>
      <p>
          <a href="https://javabulletin.substack.com/p/senior-java-interview-bug-fix-in">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Spring Boot Interview Question : Building Trending Search Queries at Scale]]></title><description><![CDATA[Everyone searched for the same thing. Kafka sent it to the same place. Chaos followed]]></description><link>https://javabulletin.substack.com/p/spring-boot-interview-question-building</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-interview-question-building</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Tue, 18 Aug 2026 13:02:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HCxn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Scenario</h3><p>You are building the &#8220;Trending Searches&#8221; feature for a large e-commerce platform.</p><p>Every day, the search system processes:</p><ul><li><p>500 million search queries</p></li><li><p>Millions of unique search terms</p></li><li><p>Queries coming from multiple regions</p></li><li><p>Multiple search clusters</p></li></ul><p>The product team wants:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Trending Searches

1. iphone 17
2. air fryer
3. java spring boot
4. running shoes
5. wireless headphones</code></pre></div><h4>Problem</h4><p>Design a system that returns the <mark data-color="#fce5cd" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">Top K most frequently searched queries</mark> in near real-time.</p><p>The API should expose:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">GET /trending-searches?k=10</code></pre></div><p>Response:</p><pre><code><code>[
  {
    "query": "iphone 17",
    "count": 1254300
  },
  {
    "query": "air fryer",
    "count": 985000
  }
]</code></code></pre><p>Initial Implementation</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HCxn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HCxn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 424w, https://substackcdn.com/image/fetch/$s_!HCxn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 848w, https://substackcdn.com/image/fetch/$s_!HCxn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 1272w, https://substackcdn.com/image/fetch/$s_!HCxn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HCxn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png" width="1394" height="792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:792,&quot;width&quot;:1394,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140609,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/180371810?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HCxn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 424w, https://substackcdn.com/image/fetch/$s_!HCxn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 848w, https://substackcdn.com/image/fetch/$s_!HCxn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 1272w, https://substackcdn.com/image/fetch/$s_!HCxn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaa989e5-6258-43ef-881b-90094ba08dda_1394x792.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 8300+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Upgrade to paid now (60% discount) and get the annual membership at $50/year </mark></strong><em><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">forever </mark></strong></em><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">that is ~ $4/mo.</mark></strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>Why does this implementation not work at production scale?</h3><p>The algorithm requires loading all queries into memory. For example:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">500 million queries/day
+
millions of unique terms
=
Huge memory requirement</code></pre></div><p>The map grows with every unique query: <mark data-color="#fce5cd" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">Map&lt;String,Integer&gt;</mark></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Example:

{
 "iphone": 100000,
 "java": 50000,
 "docker": 30000
}</code></pre></div><p>Problems:</p><ul><li><p>High memory usage</p></li><li><p>Cannot handle continuous streams</p></li><li><p>Requires full dataset before calculation</p></li><li><p>Expensive sorting, sorting has O(N log N) time complexity</p></li></ul><p></p><h3>How would you redesign this for real-time trending searches?</h3><p>The system should separate ingestion, aggregation, and serving. This prevents expensive computations from happening every time a user requests trending searches.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O88C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O88C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 424w, https://substackcdn.com/image/fetch/$s_!O88C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 848w, https://substackcdn.com/image/fetch/$s_!O88C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!O88C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O88C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png" width="1456" height="1121" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1121,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128448,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/180371810?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!O88C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 424w, https://substackcdn.com/image/fetch/$s_!O88C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 848w, https://substackcdn.com/image/fetch/$s_!O88C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!O88C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dc66877-e8ff-4160-8bdb-ce89b42de115_1722x1326.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-boot-interview-question-building">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Engineering With Java: Digest #99]]></title><description><![CDATA[Performance, platform internals, and a Spring Boot 4 deep dive]]></description><link>https://javabulletin.substack.com/p/engineering-with-java-digest-99</link><guid isPermaLink="false">https://javabulletin.substack.com/p/engineering-with-java-digest-99</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Sun, 16 Aug 2026 13:02:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!W3F9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Java Devs! Welcome to this week's edition. I hope you all are doing great!</p><p>This week's issue leans heavily into performance and platform internals. On the article side, we dig into DuckDB replacing hand-written Java loops in Spring Batch, why Java Stream's <code>anyMatch</code>/<code>findFirst</code>/<code>count</code> are quietly allocation-hungry, OpenJDK's guidance on safely evolving sealed-type switches, and Project Valhalla's first real preview reshaping how <code>==</code> works for value objects. </p><p>On video, catch a Spring Boot/Quarkus code-quality tool with a built-in MCP server, idiomatic Kotlin with Spring Boot 4, the latest on Valhalla and post-quantum crypto from Inside Java, and a deep dive into JDK Flight Recorder for production profiling. Let's dive in!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W3F9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 424w, https://substackcdn.com/image/fetch/$s_!W3F9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 848w, https://substackcdn.com/image/fetch/$s_!W3F9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 1272w, https://substackcdn.com/image/fetch/$s_!W3F9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W3F9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png" width="711" height="461" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:461,&quot;width&quot;:711,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90848,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/211360421?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W3F9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 424w, https://substackcdn.com/image/fetch/$s_!W3F9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 848w, https://substackcdn.com/image/fetch/$s_!W3F9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 1272w, https://substackcdn.com/image/fetch/$s_!W3F9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2226a0bc-eecf-402a-bb7f-a4b97c29ed93_711x461.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><strong><span>&#128226; </span><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have product, services or job  that you like to present in front of ~8200 Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Articles Of The Week (7)</mark></strong></h1><blockquote><h4><strong><a href="https://foojay.io/today/duckdb-in-spring-batch-replace-in-memory-java-loops-with-one-sql-statement/">DuckDB in Spring Batch: Replace In-Memory Java Loops with One SQL Statement</a></strong></h4></blockquote><p>This article compares two Spring Batch apps that compute per-group order aggregates from a CSV&#8212;one using hand-written Java loops with an in-memory HashMap, the other replacing the transform step with a single DuckDB SQL statement inside one small Tasklet. The recommendation: use DuckDB for aggregation-heavy transform steps over files/databases it can read, while keeping the classic reader/processor/writer pattern for row-level enrichment, external calls, or strict downstream writes.</p><blockquote><h4><strong><a href="https://openjdk.org/projects/amber/guides/exhaustiveness-guide">Preparing for Change: Safe Switching over Sealed APIs</a></strong></h4></blockquote><p>This OpenJDK guide (Bimpoudis, Buckley, Goetz) explains that exhaustive switches over sealed types don't stay exhaustive forever; adding a new permitted subtype can break recompilation or cause a <code>MatchException</code> at runtime, and argues this is a feature, not a bug, since it forces developers to consciously re-verify their assumptions as the domain evolves. It strongly advises against using <code>default</code> as a catch-all (since it hides broken assumptions, doesn't handle <code>null</code>, and can mask erroneous results), recommending instead either handling every permitted subtype explicitly or using the narrowest possible match-all case (e.g., <code>case Fruit other</code> rather than <code>case Object other</code>).</p><blockquote><h4><strong><a href="https://www.infoq.com/news/2026/08/jep401-value-objects-preview/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">Project Valhalla&#8217;s First Preview: JEP 401 Redefines == for Java Objects</a></strong></h4></blockquote><p>This  article covers JEP 401 (Value Objects Preview), now integrated into JDK 28, which introduces identity-free classes via a new <code>value</code> modifier; instances with only final fields where <code>==</code> compares by field values rather than reference identity (though <code>equals</code> is still needed since state isn't always equivalent). It requires <code>--enable-preview</code> at compile and runtime, comes with construction rules enforced by JEP 539's bytecode verification, restrictions on <code>synchronized</code>, and migration of value-based JDK classes like primitive wrappers and <code>LocalDate</code>; the payoff is potential JVM optimizations like scalarization or flattening into compact representations, though this isn't guaranteed and falls back to ordinary allocation when constraints (like atomicity limits) aren't met.</p><blockquote><h4><strong><a href="https://donraab.medium.com/allocation-hungry-any-all-none-findfirst-and-count-methods-on-java-stream-e3ca6d66b265">Allocation Hungry Any/All/None, FindFirst, and Count Methods on Java Stream</a></strong></h4></blockquote><p>Donald Raab (Eclipse Collections creator) explains that Java Stream methods like <code>anyMatch</code>, <code>allMatch</code>, <code>noneMatch</code>, <code>filter().findFirst()</code>, and <code>filter().count()</code> are surprisingly allocation-heavy; each call creates a Stream object (80-88 bytes) plus several internal closures/inner-class objects, even when used serially and eagerly, generating unnecessary garbage. He recommends avoiding these patterns in hot code paths or libraries, instead using Eclipse Collections' <code>Iterate</code> utility (<code>anySatisfy</code>, <code>detect</code>, <code>count</code>, etc.) which accomplishes the same tasks with near-zero allocation.</p><blockquote><h4><strong><a href="https://medium.com/@AlexanderObregon/optimistic-concurrency-with-sql-version-columns-54f9c1f5b3fd">Optimistic Concurrency with SQL Version Columns</a></strong></h4></blockquote><p>This article explains optimistic concurrency using SQL version columns to prevent lost updates, where a stale write silently overwrites newer data because updates that key only on a row's ID have no way to detect intervening changes. The fix is carrying a version value from the original read into the UPDATE's WHERE clause (e.g., <code>WHERE id = 101 AND version = 7</code>) alongside incrementing it, so a stale write matches zero rows instead of overwriting newer data, with the application detecting conflicts via the affected-row count.</p><blockquote><h4><strong><a href="https://inside.java/2026/08/12/java-mcp-migration/">Evolving a Java MCP Server During MCP Specification Upgrades</a></strong></h4></blockquote><p>This article demonstrates how a Helidon-based Java MCP server can adopt the new MCP 2026-07-28 spec; which moves the protocol to stateless HTTP, replaces <code>initialize</code> with <code>server/discover</code>, and adds explicit protocol headers, cache metadata, and typed tool output, without breaking existing 2025-06-18 clients. Using the <code>urgency-mcp</code> example, it adds a routing-level adapter (<code>McpRequestLoggingFeature</code>/<code>StatelessMcpProtocolHandler</code>) that intercepts only requests carrying the new protocol header, enforces the 2026 stateless contract (rejecting session IDs, validating headers, handling discovery/tools/list/tools/call), and otherwise lets legacy clients pass through to the original generated Helidon MCP route unchanged. </p><blockquote><h4><strong><a href="https://dev.to/markliu2013/java-concurrency-programming-learning-roadmap-understanding-threads-through-problems-4265">Java Concurrency Programming Learning Roadmap: Understanding Threads Through Problems</a></strong></h4></blockquote><p>It proposes learning Java concurrency problem-first, starting from why concurrency matters (response time, multi-core use), then working through atomicity, visibility, and ordering problems, mapping solutions (volatile, synchronized, ReentrantLock, AQS, CAS), thread cooperation (CountDownLatch, CyclicBarrier, Semaphore, CompletableFuture), safe shutdown, thread pools, concurrent collections, and deadlock avoidance; framed as a conceptual build-up rather than API memorization. Let me know if you&#8217;d like anything different from this pass (e.g., shorter, different focus).</p><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 8200+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Upgrade to paid now (60% discount) and get the annual membership at $50/year </mark></strong><em><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">forever </mark></strong></em><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">that is ~ $4/mo.</mark></strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Videos Of The Week (4)</mark></strong></h1><blockquote><h4><strong><a href="https://www.youtube.com/watch?v=9V5IeBmGI14">BootUI - Inspect, Analyze and Improve your Spring Boot and Quarkus Applications</a></strong></h4></blockquote><p>Boot UI is a single-dependency dev-console tool for Spring Boot and Quarkus apps that scans code against best practices (architecture, REST APIs, security, Hibernate) with scoring and fix suggestions, built by a core JHipster contributor, while also offering live monitoring of health, metrics, SQL queries, scheduled jobs, caching, and messaging. Its standout feature is a built-in MCP server that plugs into AI coding assistants like IntelliJ's, letting you ask an agent to run scans and even fix violations directly.</p><blockquote><h4><strong><a href="https://www.youtube.com/watch?v=TxmBk_VhuqY">Idiomatic Kotlin applications with Spring Boot 4</a></strong></h4></blockquote><p>Sebastian Deleuze (Spring Framework core committer) covers best practices for idiomatic Kotlin with Spring Boot 4, arguing clean code still matters in the AI-agent era since agents copy patterns from your codebase, and recommends Java 25, Gradle Kotlin DSL, and upgrading to Spring Boot 4 for continued support. Key Spring Boot 4 features include modularized auto-configuration, full JSpecify-based null safety across the entire Spring portfolio (checked via NullAway, now natively translating to Kotlin null safety), and Kotlin 2.4's fix for the classic Jackson/Hibernate annotation-target gotcha.</p><blockquote><h4><strong><a href="https://www.youtube.com/watch?v=-4gCNsoPAmQ"><span>JSON API, Valhalla Progress, LTS &#10084;&#65039; PQC</span></a></strong></h4></blockquote><p>This Inside Java Newscast (Nicolai Parlog) covers several OpenJDK updates: Project Valhalla's value types and strict field initialization have merged into JDK 28 early access, with Dan Smith identifying ~60 JDK API classes as migration candidates (though not urgent); primitive patterns will get another unchanged preview in JDK 28 due to overlap with constant patterns; and JEP 540 proposes an incubating, deliberately minimal JSON API (not meant to replace Jackson/GSON) targeting JDK 28. </p><blockquote><h4><strong><a href="https://www.youtube.com/watch?v=vu0XEBplqpg">Efficient Profiling and Troubleshooting for Java Applications</a></strong></h4></blockquote><p>This talk by Michael introduces JDK Flight Recorder (JFR), an event-based, always-on recording framework designed for production use with under 1% overhead, capturing everything from GC and JIT activity to TLS handshakes, thread dumps, and custom application events with stack traces. It explains JFR's efficiency; thread-local buffering, reuse of data the JVM already collects, and a compact self-describing binary file format&#8212;plus its flexible filtering/throttling and configuration via <code>.jfc</code> files. </p><p></p><h1 style="text-align: center;"><strong><mark data-color="rgb(208, 224, 227)" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">In-house Blogs (5)</mark></strong></h1><ul><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-rolling">Spring Boot Interview Question : Rolling Out New Feature</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/java-interview-question-the-concurrenthashmap">Java Interview Question - The ConcurrentHashMap Trap</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-async">Spring Boot Interview Question - @Async Broke Our Audit Logs</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-quiz-what-happens">Spring Boot Interview Quiz: What Happens to the Transaction?</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-the-event-that">Spring Boot Interview: The Event That Lied About Being Saved</a></strong></p></li></ul><h4><strong><span>&#187; </span><a href="https://javabulletin.substack.com/p/java-interview-questions">Check full list of interview question</a></strong></h4><div><hr></div><p>Thats all for this week friends! Thanks for reading this far. If you liked it please like and share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><p><strong><a href="https://javabulletin.substack.com/subscribe?"><mark data-color="rgb(252, 229, 205)" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</mark></a><mark data-color="rgb(252, 229, 205)" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);"><span>.</span></mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><span>&#128226; </span><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have a product or services that you like to present in front of ~8000 Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Spring Boot Interview Question : Rolling Out New Feature]]></title><description><![CDATA[The feature flag changed. Now the real question: who told your application?]]></description><link>https://javabulletin.substack.com/p/spring-boot-interview-question-rolling</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-interview-question-rolling</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Thu, 13 Aug 2026 13:03:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1-ZC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Scenario</h3><p>Your company uses feature flags to gradually roll out a new checkout flow. Every request checks the feature flag before deciding which implementation to execute.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1-ZC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1-ZC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 424w, https://substackcdn.com/image/fetch/$s_!1-ZC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 848w, https://substackcdn.com/image/fetch/$s_!1-ZC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 1272w, https://substackcdn.com/image/fetch/$s_!1-ZC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1-ZC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png" width="1388" height="692" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:692,&quot;width&quot;:1388,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109443,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/210015189?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1-ZC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 424w, https://substackcdn.com/image/fetch/$s_!1-ZC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 848w, https://substackcdn.com/image/fetch/$s_!1-ZC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 1272w, https://substackcdn.com/image/fetch/$s_!1-ZC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F650aa255-52a3-4a1f-94f3-5f6bd2e9b9db_1388x692.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The feature flags are stored in a remote service (LaunchDarkly, Unleash, or an internal service). One afternoon, the feature flag service becomes unavailable.</p><p>Suddenly:</p><ul><li><p>Checkout latency jumps from 40ms to 900ms</p></li><li><p>Thread pools begin filling up</p></li><li><p>Circuit breakers start opening</p></li><li><p>Checkout success rate drops</p></li></ul><p>No application code was deployed.</p><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 8100+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>Founding Member Offer:</strong><span> Lock in founding member price at $50/year </span><strong>(~$4/month) for life. </strong><span>Limited spot left</span></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><blockquote><h3>What actually went wrong?</h3></blockquote><p>The checkout service made a synchronous network call to evaluate the feature flag before executing any business logic. </p><p>If <code>isEnabled()</code> performs a REST call:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Service
public class FeatureFlagService {

    private final RestTemplate restTemplate;

    public boolean isEnabled(String feature, User user) {

        return restTemplate.getForObject(
                "/flags/{feature}?userId={id}",
                Boolean.class,
                feature,
                user.getId()
        );
    }
}</code></pre></div><p>every checkout request now depends on the feature flag service. If the feature flag service becomes slow:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Checkout -&gt; Feature Flag Service (900ms)</code></pre></div><p>every checkout request waits for the response, increasing latency and tying up request threads.</p><p>Eventually:</p><ul><li><p>Thread pools become exhausted.</p></li><li><p>Requests begin timing out.</p></li><li><p>Circuit breakers open.</p></li><li><p>Checkout appears unavailable, even though its own business logic is healthy.</p></li></ul><p>The feature flag service has unintentionally become part of the critical request path.</p><p></p><blockquote><h3>How would you redesign the system so a feature flag outage never impacts checkout?</h3></blockquote><p></p>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-boot-interview-question-rolling">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Java Interview Question - The ConcurrentHashMap Trap]]></title><description><![CDATA[It was thread-safe&#8230; until the threads showed up]]></description><link>https://javabulletin.substack.com/p/java-interview-question-the-concurrenthashmap</link><guid isPermaLink="false">https://javabulletin.substack.com/p/java-interview-question-the-concurrenthashmap</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Wed, 12 Aug 2026 01:53:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!d41D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Context</h3><p>A payment platform keeps track of how many API requests each merchant has made. To make it thread-safe, the team replaced a <code>HashMap</code> with a <code>ConcurrentHashMap</code>.</p><p>A few weeks later, operations noticed something strange: The total request count is consistently lower than the number of requests recorded by the load balancer. There are no exceptions, no failed requests and CPU and memory look healthy.</p><p>The only symptom is that some increments disappear under heavy load.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d41D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d41D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 424w, https://substackcdn.com/image/fetch/$s_!d41D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 848w, https://substackcdn.com/image/fetch/$s_!d41D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 1272w, https://substackcdn.com/image/fetch/$s_!d41D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d41D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png" width="1418" height="994" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:994,&quot;width&quot;:1418,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:168380,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/209551494?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!d41D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 424w, https://substackcdn.com/image/fetch/$s_!d41D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 848w, https://substackcdn.com/image/fetch/$s_!d41D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 1272w, https://substackcdn.com/image/fetch/$s_!d41D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f6a75e-528d-494d-98d2-df2cd5d940ae_1418x994.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);"><span>&#128640; </span></mark><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Level up your Java &amp; Spring Boot skills.</mark></strong></h3><p><span>Join </span><strong>8100+ developers</strong><span> and get weekly, no-fluff content featuring practical coding tips, real-world backend insights, and interview questions based on production scenarios.</span></p><p><strong>Founding Member Offer:</strong><span> Lock in founding member price at $50/year </span><strong>(~$4/month) for life. </strong><span>Limited spot left.</span></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><blockquote><h4>The application uses a <code>ConcurrentHashMap</code>. Shouldn't this code be thread-safe?</h4></blockquote><p>ConcurrentHashMap guarantees thread safety for individual operations&#8212;not for a sequence of operations.</p><p>The following sequence is not atomic:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">get(...)
modify(...)
put(...)</code></pre></div><p>Multiple threads can observe the same value simultaneously.</p><p><strong>Race condition example:</strong></p><p>merchant A = 10. Two requests arrive at exactly the same time.</p><p>Thread A :  get() &#8594; 10, Thread B:  get() &#8594; 10</p><p>Both threads calculate: 10 + 1 = 11</p><p>Thread A writes &#8594; put(11). Thread B writes &#8594; put(11)</p><p>Final value &#8594; <code>11 vs </code>Expected &#8594; <code>12</code></p><p>One increment silently disappears. And we don&#8217;t get any exception and warning. Just incorrect business data. <mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">This is a classic lost-update race condition.</mark></p><blockquote><h4>What solution do you propose to fix this?</h4></blockquote><p></p>
      <p>
          <a href="https://javabulletin.substack.com/p/java-interview-question-the-concurrenthashmap">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Engineering With Java: Digest #98]]></title><description><![CDATA[From governed AI agents to post-quantum crypto: this week's essential Java reads]]></description><link>https://javabulletin.substack.com/p/engineering-with-java-digest-98</link><guid isPermaLink="false">https://javabulletin.substack.com/p/engineering-with-java-digest-98</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Sun, 09 Aug 2026 13:03:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!njV8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>&#128075; </strong><span>Java Devs! Welcome to this weeks edition. I hope you all are doing great!</span></p><p>This week brings a strong mix of <mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">AI-meets-Java content alongside some solid core platform updates</mark>. On the AI side, we've got governed agent orchestration with Quarkus Flow and MCP, Spring AI's take on the Agent2Agent protocol for multi-agent systems, and a candid look at where we actually stand on the "AI adoption ladder."</p><p>On the platform front, there's encouraging news on post-quantum cryptography making its way to older LTS releases, an early look at Project Valhalla's plans for new numeric types, and a couple of clever libraries worth adding to your toolbox ; from idempotent REST endpoints to embedding DuckDB for zero-setup data crunching. Plus JIT compiler internals, WebAssembly on the JVM, and JobRunr landing on Spring Initializr. Let's dive in!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!njV8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 424w, https://substackcdn.com/image/fetch/$s_!njV8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 848w, https://substackcdn.com/image/fetch/$s_!njV8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 1272w, https://substackcdn.com/image/fetch/$s_!njV8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!njV8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png" width="733" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:733,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96385,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/210393698?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!njV8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 424w, https://substackcdn.com/image/fetch/$s_!njV8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 848w, https://substackcdn.com/image/fetch/$s_!njV8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 1272w, https://substackcdn.com/image/fetch/$s_!njV8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3706dff5-f937-4771-8805-6984dbfc2b58_733x453.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 8200+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Upgrade to paid now (60% discount) and get the annual membership at $50/year </mark></strong><em><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">forever </mark></strong></em><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">that is ~ $4/mo.</mark></strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Articles Of The Week (8)</mark></strong></h1><p></p><h4><strong>&#187; <a href="https://dzone.com/articles/quarkus-agentic-workflows">Orchestration Meets MCP: Building Governed Agentic Workflows With Quarkus Flow and AGENTS.md</a></strong></h4><p>This article explores how Java developers can build more reliable and governed AI agent workflows using Quarkus Flow, LangChain4j, MCP, and AGENTS.md. Instead of relying on fragile custom loops, Quarkus Flow handles orchestration with retries, conditional loops, iteration limits, and human approval gates, while MCP provides standardized access to external tools and systems. AGENTS.md adds a governance layer for defining agent roles, security boundaries, and output requirements without hardcoding those rules into Java code</p><h4>&#187; <a href="https://medium.com/@AlexanderObregon/order-matters-with-resilience4j-in-spring-boot-7c349cb53115?source=rss-4f9731d3205------2">Order Matters with Resilience4j in Spring Boot</a></h4><p>This article explains why the order of Resilience4j components matters when combining Retry, CircuitBreaker, TimeLimiter, and Bulkhead. Spring AOP wraps these components as nested layers, so changing their order changes what each one actually measures and controls. It also covers how to explicitly control aspect ordering, fallback behavior, and the impact of wrapper placement on timeouts, concurrency limits, metrics, and failures</p><h4>&#187; <a href="https://foojay.io/today/idempotent-spring-boot-starter/">Idempotent REST Endpoints Without the Boilerplate</a></h4><p>This article introduces a Spring Boot starter that makes REST endpoints idempotent with a simple <code>@Idempotent</code> annotation. It handles duplicate requests using an idempotency key, replaying the original response instead of executing the operation again; a useful pattern for APIs where retries could cause problems like double charges. The library supports Redis and JDBC/Postgres storage, handles concurrent requests using atomic claims, and can either wait for the original request or fail fast with <code>409.</code></p><h4>&#187; <a href="https://anushasp07.medium.com/singleton-in-spring-boot-how-the-ioc-container-manages-singleton-beans-309403f101d8?source=rss-f5d0f9885a35------2">Singleton in Spring Boot: How the IoC Container Manages Singleton Beans</a></h4><p>This article explains how Spring Boot's IoC Container manages beans as singletons by default, so one instance is created per container and shared everywhere it's injected; a pattern useful because it avoids manual singleton boilerplate and redundant object creation across ourt app. The container builds bean definitions at startup, eagerly instantiates them via reflection, and hands out the same object on every injection, though <code>@Lazy</code> can defer creation and <code>@Scope("prototype")</code> can opt a bean out of singleton behavior.</p><h4>&#187; <a href="https://www.baeldung.com/spring-ai-agent2agent-protocol">Exploring Agent2Agent Protocol (A2A) With Spring AI</a></h4><p>This article demonstrates the Agent2Agent (A2A) Protocol using Spring AI, which lets independently-built AI agents discover each other via a published "Agent Card" and exchange tasks; useful when we split complex work across specialized agents rather than one monolithic one. It walks through building a job-screening system: an orchestrator agent acting as an A2A client discovers three remote specialist agents (each an A2A server) at startup, delegates candidate evaluation tasks to them via tool calls, and merges their responses into one summary.</p><h4>&#187; <a href="https://debugagent.com/push-v3-one-message-from-your-server-to-every-surface">Push V3: One Message From Your Server to Every Surface</a></h4><p>This article covers Push V3, a rewrite of Codename One&#8217;s push system that replaces certificates and numeric push types with a typed <code>PushMessage</code> model, managed provider credentials, server-side segmentation, and direct updates to Surfaces like widgets and Live Activities. The release also previews four related changes: a Maven repository move off Central, on-device AI/MCP tooling, a HealthKit/Health Connect API, and a new road-routing API using OSRM.</p><h4>&#187; <a href="https://foojay.io/today/embedding-duckdb-in-a-maven-app-and-using-it-for-things-that-arent-databases/">Embedding DuckDB in a Maven App (and Using It for Things That Aren&#8217;t Databases)</a></h4><p>This article shows how to embed DuckDB in a Maven project as a single JDBC dependency (no server, no install), and how it can query CSV, JSON, or Parquet files; local or over HTTP; directly as SQL tables without ever creating a database. It walks through a full example that aggregates a remote CSV of penguin data straight from a GitHub URL using plain <code>java.sql</code> code, no schema definition required. It frames DuckDB less as a database and more as a drop-in replacement for hand-rolled CSV parsing, in-memory aggregation logic, test-data generation, and reading Parquet without pulling in the Hadoop ecosystem.</p><h4>&#187; <a href="https://blogs.oracle.com/java/post-quantum-cryptography-in-long-term-support-jdk-releases">Post-Quantum Cryptography in Long-Term Support JDK Releases</a></h4><p>This post outlines Oracle's plan to bring post-quantum cryptography to older, supported Java LTS releases (25, 21, 17, 11, 8), not just new JDKs, so apps can gain quantum-resistant TLS through updates and config alone. Groundwork includes JDK 24's ML-KEM/ML-DSA algorithms and JDK 27's hybrid PQC TLS 1.3 key exchange (GA September 2026), with older LTS versions reaching parity between October 2026 and late 2027.</p><div><hr></div><p><strong><span>&#128226; </span><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have a product or services that you like to present in front of ~8200 Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Videos Of The Week (5)</mark></strong></h1><h4>&#187; <a href="https://youtu.be/g12mC2J11d0?si=JH1zrjfJjnyuvK6c">The 5 Steps of AI Adoption: Which One Are You On?</a></h4><p>This video breaks down Boris Cherny's five-step "AI adoption ladder" for coding agents; from Step 0 (copy-pasting between a chatbot and your IDE, you're the bottleneck) through Step 1 (assisted pair-programming with manual review), Step 2 (orchestrating 5-10 parallel agents), Step 3 (supervised autonomy), to Step 4 (fully autonomous, AI-native loops). The core lesson: moving up a step isn't about using more tokens, it's about removing bottlenecks and adding guardrails like automated verification. </p><h4>&#187; <a href="https://www.infoq.com/presentations/yk-meta-tracing-jit-compiler/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">Automatically Retrofitting JIT Compilers</a></h4><p>This QCon London talk introduces yk, an open-source meta-tracing JIT compiler that bolts onto existing C-based interpreters (Lua, MicroPython) with minimal code changes (~400 lines added, under 5% of the codebase) while still delivering real speedups (~4x on a benchmark, ~2x geomean). The key idea: treat the existing C interpreter as the source of truth rather than writing a new one from scratch (unlike PyPy/RPython or Truffle), avoiding the compatibility drift that's killed most prior dynamic-language JIT projects.</p><h4>&#187; <a href="https://youtu.be/eeLwraeAgO8?si=aPOJa9KFT8rhxj17">WebAssembly on the JVM: Feature Evolution, Performance, and the Transition to Endive</a></h4><p>This InfoQ interview features Andrea Peruffo discussing Chicory, his project for running WebAssembly on the JVM, framing it as a way to reuse existing Wasm-compiled libraries (databases, parsers, JS engines like QuickJS) safely and portably in Java without JNI's crash risks and OS-specific builds. He covers WASI's progress (core spec finalized, WASI GC letting languages like Scala.js and Kotlin target Wasm, and the upcoming component model in WASI P3), real production use cases (Trino's Python UDFs, JRuby's Prism parser compiled to Wasm and sped up 10x via Java bytecode compilation, and Shopify's QuickJS engine embedded in Microcks for API mocking), and Chicory's execution layers.</p><h4>&#187; <a href="https://youtu.be/LN0XKkjugIk?si=F5rVUdxiLxSgQhvZ">Paths to New Numeric Types On the Java Platform</a></h4><p>This JavaOne talk by Joe Darcy (Oracle) explores speculative, in-development paths for adding new numeric types to Java, tied to Project Valhalla's value classes and type classes work. He motivates the need with use cases like scientific computing and especially ML/AI, which favors smaller formats (float16, bfloat16, 8-bit floats), and explains Java's divide between reference types (flexible, identity-based) and primitive types (fast, dense, no identity) that Valhalla aims to bridge. Drawing an analogy to abstract algebra's number hierarchy versus the Java Collections Framework, he argues Java doesn't need full mathematical richness.</p><h4>&#187; <a href="https://www.youtube.com/watch?v=KHTdPEYAMOM">Spring Boot and JobRunr: easy job distribution and scheduling</a></h4><p>This Spring demo (likely Josh Long) celebrates JobRunr; a distributed Java job scheduling engine; landing on Spring Initializr as a modern, easier alternative to Quartz. He builds a quick Spring Boot app with JobRunr, Postgres, and OpenTelemetry, showing how to define a <code>JobRequest</code>/<code>JobRequestHandler</code>, enqueue jobs (immediate, delayed, or cron-based recurring), and monitor everything via JobRunr&#8217;s built-in dashboard.</p><p></p><h1 style="text-align: center;"><strong><mark data-color="rgb(208, 224, 227)" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">In-house Blogs (5)</mark></strong></h1><ul><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-async">Spring Boot Interview Question - Async Broke Our Audit Logs</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-quiz-what-happens">Spring Boot Interview Quiz: What Happens to the Transaction?</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-the-event-that">Spring Boot Interview: The Event That Lied About Being Saved</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-quiz-the-hidden">Spring Boot Interview Quiz: The Hidden Order of Your Beans</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why-762">Spring Data JPA Interview Quiz : Why did Hibernate execute an UPDATE without calling save()?</a></strong></p></li></ul><h4><strong>&#187; <a href="https://javabulletin.substack.com/p/java-interview-questions">Check full list of interview question</a> </strong></h4><p></p><div><hr></div><p>Thats all for this week friends! Thanks for reading this far. If you liked it please like and share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><p><strong><a href="https://javabulletin.substack.com/subscribe?"><mark data-color="rgb(252, 229, 205)" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</mark></a><mark data-color="rgb(252, 229, 205)" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);"><span>.</span></mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><span>&#128226; </span><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have a product or services that you like to present in front of ~8000 Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Spring Boot Interview Question - @Async Broke Our Audit Logs]]></title><description><![CDATA[Your request remembers everything. @Async remembers nothing]]></description><link>https://javabulletin.substack.com/p/spring-boot-interview-question-async</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-interview-question-async</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Thu, 06 Aug 2026 13:00:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gQVo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Context</h3><p>A payment service stores request metadata in MDC so every log line contains the request information.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gQVo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 424w, https://substackcdn.com/image/fetch/$s_!gQVo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 848w, https://substackcdn.com/image/fetch/$s_!gQVo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 1272w, https://substackcdn.com/image/fetch/$s_!gQVo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gQVo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png" width="1414" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1414,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:142159,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/209510246?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gQVo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 424w, https://substackcdn.com/image/fetch/$s_!gQVo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 848w, https://substackcdn.com/image/fetch/$s_!gQVo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 1272w, https://substackcdn.com/image/fetch/$s_!gQVo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35a50ee3-c2ac-4ab3-b010-414400f02540_1414x942.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The controller logs look correct:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">requestId=8fa92
merchantId=paypal-123
userId=suraj</code></pre></div><p>But every log produced inside <code>sendReceipt()</code> shows:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">requestId=null
merchantId=null
userId=null</code></pre></div><div><hr></div><h3><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">&#128640; </mark><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Level up your Java &amp; Spring Boot skills.</mark></strong></h3><p>Join <strong>8100+ developers</strong> and get weekly, no-fluff content featuring practical coding tips, real-world backend insights, and interview questions based on production scenarios.</p><p><strong>Founding Member Offer:</strong> Lock in founding member price at $50/year <strong>(~$4/month) for life. </strong>Limited spot left.</p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><blockquote><h4>Why did the audit context disappear? </h4></blockquote><h4>MDC uses ThreadLocal</h4><p>Most logging frameworks store MDC using <code>ThreadLocal</code>. The values belong only to the current thread.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e3Zk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e3Zk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 424w, https://substackcdn.com/image/fetch/$s_!e3Zk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 848w, https://substackcdn.com/image/fetch/$s_!e3Zk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 1272w, https://substackcdn.com/image/fetch/$s_!e3Zk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e3Zk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png" width="1444" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:1444,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/209510246?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e3Zk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 424w, https://substackcdn.com/image/fetch/$s_!e3Zk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 848w, https://substackcdn.com/image/fetch/$s_!e3Zk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 1272w, https://substackcdn.com/image/fetch/$s_!e3Zk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9afd592d-e9c8-4153-a9b2-6adb2ff64851_1444x480.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><code>@Async</code> executes on another thread</h4><p>The executor picks another thread from its pool. That thread has a completely different <code>ThreadLocal</code> map.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Request Thread  -&gt; Async Executor Thread</code></pre></div><p>Hence <code>MDC.get("requestId")</code> returns null</p><h4>ThreadLocal values are NOT inherited</h4><p>Unlike method arguments, <code>ThreadLocal</code> state is never copied automatically. Even if the thread comes from the same executor every time, the context is not transferred.</p><p></p><blockquote><h3>How would you fix it without changing every <code>@Async</code> method in the application?</h3></blockquote><p></p>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-boot-interview-question-async">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Spring Boot Interview Quiz: What Happens to the Transaction?]]></title><description><![CDATA[Your database knows the answer... do you?]]></description><link>https://javabulletin.substack.com/p/spring-boot-interview-quiz-what-happens</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-interview-quiz-what-happens</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Tue, 04 Aug 2026 12:45:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Inuk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Question</h2><p>Consider the following service:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Inuk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Inuk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 424w, https://substackcdn.com/image/fetch/$s_!Inuk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 848w, https://substackcdn.com/image/fetch/$s_!Inuk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 1272w, https://substackcdn.com/image/fetch/$s_!Inuk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Inuk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png" width="1456" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:166339,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206235980?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Inuk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 424w, https://substackcdn.com/image/fetch/$s_!Inuk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 848w, https://substackcdn.com/image/fetch/$s_!Inuk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 1272w, https://substackcdn.com/image/fetch/$s_!Inuk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6569db4e-afff-4d64-8f0a-7ef9ac7c53d6_1472x938.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The application throws:</p><pre><code><code>java.io.IOException: Inventory service unavailable</code></code></pre><p>The API returns an error.</p><h3>What happens to the database transaction?</h3><p><strong>A. </strong>The order insert is rolled back because an exception occurred.</p><p><strong>B. </strong>The order insert is committed because <code>IOException</code> is a checked exception.</p><p><strong>C. </strong>Spring automatically retries the transaction.</p><p><strong>D. </strong>The transaction remains open until the application restarts.</p><div><hr></div><h3><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">&#128640; </mark><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Level up your Java &amp; Spring Boot skills.</mark></strong></h3><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 8100+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>Founding Member Offer:</strong> Lock in founding member price at $50/year <strong>(~$4/month) for life. </strong>Limited spot left</p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>Correct Answer</h3><p><strong>B. The order insert is committed because </strong><code>IOException</code><strong> is a checked exception.</strong></p><p></p><h3>Explanation</h3><p>A common misconception is:</p><blockquote><p><strong>&#8220;Any exception causes a transaction rollback.&#8221;</strong></p></blockquote><p>That&#8217;s not how Spring works.</p><p>By default, Spring rolls back transactions only for:</p><ul><li><p><code>RuntimeException</code></p></li><li><p><code>Error</code></p></li></ul><p>Checked exceptions (such as <code>IOException</code>, <code>SQLException</code>, or any class extending <code>Exception</code>) do not trigger an automatic rollback.</p><p></p><h3>What happens internally?</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aSZo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aSZo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 424w, https://substackcdn.com/image/fetch/$s_!aSZo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 848w, https://substackcdn.com/image/fetch/$s_!aSZo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 1272w, https://substackcdn.com/image/fetch/$s_!aSZo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aSZo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png" width="1456" height="1082" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1082,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154567,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206235980?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aSZo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 424w, https://substackcdn.com/image/fetch/$s_!aSZo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 848w, https://substackcdn.com/image/fetch/$s_!aSZo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 1272w, https://substackcdn.com/image/fetch/$s_!aSZo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f52e8e0-db94-456e-90b0-1890078c3b6f_1504x1118.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Even though the API fails, the database transaction is committed.</p><p></p><h3>How to Fix It</h3>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-boot-interview-quiz-what-happens">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Engineering With Java: Digest #97]]></title><description><![CDATA[JIT, GPUs, and Karl the Fog: Everything Java Learned to Do Before Coffee]]></description><link>https://javabulletin.substack.com/p/engineering-with-java-digest-97</link><guid isPermaLink="false">https://javabulletin.substack.com/p/engineering-with-java-digest-97</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Sun, 02 Aug 2026 13:02:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!U4gp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>&#128075; </strong><span>Java Devs! Welcome to this weeks edition. We are closer to complete 100th edition. </span></p><p><span>This week we have packed agenda with covering variety of curated articles, videos. Engineers are talking about topics that are directly or indirectly related to AI + Java/Spring, along with some clean architecture and internals of JDK.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U4gp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U4gp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 424w, https://substackcdn.com/image/fetch/$s_!U4gp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 848w, https://substackcdn.com/image/fetch/$s_!U4gp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 1272w, https://substackcdn.com/image/fetch/$s_!U4gp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U4gp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png" width="1456" height="965" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:965,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221653,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/209336039?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U4gp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 424w, https://substackcdn.com/image/fetch/$s_!U4gp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 848w, https://substackcdn.com/image/fetch/$s_!U4gp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 1272w, https://substackcdn.com/image/fetch/$s_!U4gp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac28bfc-f89d-40b2-a533-0c07997597d9_1464x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><p>But before we dive in, quick news to share and an announcement. This week we crossed <strong>8000 subscribers</strong> mark and feel like big achievement to reach here and able to build a community of 8000+ like minded engineers. Thank you so much for being so kind and supporting my articles.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b2oT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 424w, https://substackcdn.com/image/fetch/$s_!b2oT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 848w, https://substackcdn.com/image/fetch/$s_!b2oT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 1272w, https://substackcdn.com/image/fetch/$s_!b2oT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b2oT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png" width="1456" height="1209" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1209,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:297731,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/209336039?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b2oT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 424w, https://substackcdn.com/image/fetch/$s_!b2oT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 848w, https://substackcdn.com/image/fetch/$s_!b2oT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 1272w, https://substackcdn.com/image/fetch/$s_!b2oT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3f47a8-eafb-47af-b844-9fc8361c5ef8_1530x1270.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you are new here, i keep writing about Java &amp; Spring Boot via articles or Interview Questions. If this  interests you, consider becoming free or paid subscribers. Currently Founding member plan is active and you can become paid subscriber at <strong>$4/mo</strong> (with annual subscription).</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 70+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Articles Of The Week (8)</mark></strong></h1><h4>&#187; <a href="https://www.infoq.com/articles/virtual-threads-after-jdk24/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">Virtual Threads After JDK 24: What Changed for Production Java</a> </h4><p>This article explores how virtual threads have evolved since JDK 21 and explains why JDK 24's fix for thread pinning doesn't eliminate all production risks. Instead, the bottleneck shifts from thread pools to downstream resources like database connections, file descriptors, and rate limits. It also highlights why common <code>ThreadLocal</code> patterns become ineffective with virtual threads and recommends adopting Scoped Values for request context. The key takeaway is that virtual threads simplify concurrency, but production systems still need explicit resource limits, proper context propagation, and careful migration planning.</p><h4>&#187; <a href="https://www.infoq.com/presentations/kotlin-serverless/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">Clean Architecture for Serverless: Business Logic You Can Take Anywhere</a></h4><p>This talk demonstrates how to build serverless applications that can run across multiple cloud providers without changing business logic. Using Spring Cloud Function, Clean Architecture, and Gradle modules, the speaker isolates domain logic from cloud-specific services so the same application can be deployed to both AWS and Azure. The key takeaway is that portability comes from architectural boundaries and dependency injection&#8212;not avoiding cloud services altogether.</p><h4>&#187; <a href="https://www.baeldung.com/java-ahead-of-time-cache">A Guide to Ahead-of-Time Cache in the Java</a></h4><p>This tutorial explores Java's Ahead-of-Time (AOT) Cache, introduced in JDK 24 as part of Project Leyden to reduce JVM startup time by precomputing and storing class metadata. It explains how JDK 25 simplifies cache generation, while JDK 26 improves compatibility by removing earlier garbage collector limitations. The key takeaway is that AOT Cache can significantly improve startup and warmup times, but only when integrated thoughtfully into the build and deployment process.</p><h4>&#187; <a href="https://foojay.io/today/how-to-create-a-spring-boot-fraud-scoring-service/">How to Create a Spring Boot Fraud Scoring Service</a></h4><p>This tutorial demonstrates how to build a fraud detection service entirely in Java using Deep Netts and Spring Boot, eliminating the need for a separate Python inference service. It covers training and serving the model in the same application, highlights why metrics like precision and recall matter more than accuracy for imbalanced datasets, and explains common production pitfalls such as deploying a model without its corresponding feature scaler. </p><h4>&#187; <a href="https://dzone.com/articles/spring-data-jpa-repository-debt">This One Spring Data JPA Pattern Cleaned Up to 3 Years of Repository Debt</a></h4><p>This article explains how Spring Data JPA Specifications simplify building dynamic database queries without creating dozens of repository methods for every filter combination. By encapsulating each filter into small, reusable specifications, developers can compose queries at runtime using <code>.and()</code> and <code>.or()</code>, making search functionality far more flexible and maintainable. The article also covers joins, pagination, keyword search, and common pitfalls to avoid. </p><h4>&#187; <a href="https://www.petrikainulainen.net/programming/testing/introduction-to-spring-mvc-test-framework/">Introduction to Spring MockMvc</a></h4><p>This article introduces Spring MockMvc, a testing framework that lets us verify Spring MVC controllers without starting a web server. By executing requests through the real <code>DispatcherServlet</code> while mocking the servlet container, MockMvc provides fast, reliable tests that cover request mapping, validation, serialization, and error handling. </p><h4>&#187; <a href="https://dzone.com/articles/config-driven-soap-rest-integration">Building a Config-Driven SOAP/REST Integration Layer</a></h4><p>This case study shows how a legacy SOAP middleware evolved to support both SOAP and REST without splitting into multiple services. Instead of hardcoding protocol-specific logic, the team made transport and authentication configurable, allowing the same application to communicate with different customers based on configuration alone. They also preserved their existing XSLT transformation pipeline by adding JSON conversion for REST integrations, avoiding a costly rewrite. </p><h4>&#187; <a href="https://www.baeldung.com/spring-application-startup-tracking">Application Startup Tracking in Spring</a></h4><p>This article explains how to profile and analyze Spring application's startup process using the Spring Boot Actuator <code>/startup</code> endpoint. By enabling <code>BufferingApplicationStartup</code>, Spring records detailed startup events, bean initialization, and application lifecycle steps, making it easier to identify slow components and optimize startup performance. The article also demonstrates how to expose and inspect this data through Actuator, making it a valuable tool for diagnosing startup bottlenecks in complex Spring Boot applications.</p><div><hr></div><p><strong><span>&#128226; </span><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have a product or services that you like to present in front of ~8000 Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Videos Of The Week (4)</mark></strong></h1><h4>&#187; <a href="https://www.danvega.dev/blog/upgrading-dependencies-with-ai">Upgrading Dependencies with AI: A Practical Guide</a></h4><p>Dan Vega demonstrates a practical workflow for using AI to perform dependency upgrades safely. Using Claude to upgrade a Nuxt application, he emphasizes reviewing release notes first, letting the AI generate a migration plan, working in a separate branch, and validating every step with local builds and preview deployments before merging. The key takeaway is that AI can significantly speed up low-risk upgrades, but for large enterprise codebases, deterministic tools like OpenRewrite remain a better choice due to their predictable, repeatable results.</p><h4>&#187; <a href="https://www.youtube.com/watch?v=92kiWnObur8">Empowering GPU Acceleration for Java</a></h4><p>This talk introduces HAT (Heterogeneous Accelerator Toolkit), an experimental Java project that enables developers to offload compute-intensive workloads to GPUs while writing only Java. Built on Project Babylon and Project Panama, HAT uses Java's reflection capabilities to generate optimized GPU code for backends like CUDA and OpenCL.</p><h4>&#187; <a href="https://www.youtube.com/watch?v=ofPOBPa8500">JIT Compiler From the Ground Up</a></h4><p>This Inside Java Podcast explores how HotSpot's Just-In-Time (JIT) compiler turns Java bytecode into highly optimized native machine code. Oracle compiler engineer Roberto Lozano explains core concepts including tiered compilation (C1 and C2), profiling, speculative optimizations, deoptimization, inlining, escape analysis, and scalar replacement. The discussion also highlights how techniques like fuzz testing, hardware-specific intrinsics, and upcoming projects such as Valhalla continue to push JVM performance forward, making it a great deep dive into the internals of Java execution.</p><h4>&#187; <a href="https://www.youtube.com/watch?v=_ftzJ33mCTI">95% of AI Projects Fail. Here's Why</a></h4><p>In this episode, Josh Long reflects on Spring's evolution, from its early days to Spring Boot, cloud-native development, and now AI. He shares how developer advocacy, great documentation, and continuous community engagement played a major role in Spring's success, while explaining how Spring Boot simplified dependency management and developer productivity. Josh also discusses AI's impact on software engineering, arguing that frameworks like Spring become even more valuable as developers remain responsible for reviewing, integrating, and maintaining AI-generated code.</p><h1 style="text-align: center;"><strong><mark data-color="rgb(208, 224, 227)" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">In-house Blogs (4)</mark></strong></h1><p><a href="https://javabulletin.substack.com/p/spring-boot-interview-the-event-that">Spring Boot Interview: The Event That Lied About Being Saved</a></p><p><a href="https://javabulletin.substack.com/p/spring-boot-interview-quiz-why-is">Spring Boot Interview Quiz : Why Is CPU Low but Latency High?</a></p><p><a href="https://javabulletin.substack.com/p/spring-boot-interview-quiz-the-hidden">Spring Boot Interview Quiz: The Hidden Order of Your Beans</a></p><p><a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why-762">Spring Data JPA Interview Quiz : Why did Hibernate execute an UPDATE without calling save()?</a></p><h4><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">Checkout full list her</a><span>e</span></strong></h4><div><hr></div><p>Thats all for this week friends! Thanks for reading this far. If you liked it please like and share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><p><strong><a href="https://javabulletin.substack.com/subscribe?"><mark data-color="rgb(252, 229, 205)" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</mark></a><mark data-color="rgb(252, 229, 205)" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);"><span>.</span></mark></strong></p><p><strong><span>&#128226; </span><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have a product or services that you like to present in front of 8000+ Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Spring Boot Interview: The Event That Lied About Being Saved]]></title><description><![CDATA[Your email was sent... your order wasn't.]]></description><link>https://javabulletin.substack.com/p/spring-boot-interview-the-event-that</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-interview-the-event-that</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Thu, 30 Jul 2026 12:17:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MJ3x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Question</h3><p>Consider the following service:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MJ3x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MJ3x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 424w, https://substackcdn.com/image/fetch/$s_!MJ3x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 848w, https://substackcdn.com/image/fetch/$s_!MJ3x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!MJ3x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MJ3x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png" width="1352" height="1326" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1326,&quot;width&quot;:1352,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:204971,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206235618?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MJ3x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 424w, https://substackcdn.com/image/fetch/$s_!MJ3x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 848w, https://substackcdn.com/image/fetch/$s_!MJ3x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!MJ3x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06016dab-6d3a-4376-9dcf-5213583e7575_1352x1326.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The application logs:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Order saved successfully
Sending order confirmation email
Transaction rolled back</code></pre></div><h3>What happens when <code>publishEvent()</code> is called?</h3><p><strong>A. </strong>The listener is <strong>not</strong> executed because the transaction eventually rolls back.</p><p><strong>B. </strong>The listener executes immediately after <code>publishEvent()</code>, even though the transaction later rolls back.</p><p><strong>C. </strong>Spring delays the listener until the transaction commits.</p><p><strong>D. </strong>Spring automatically discards the event when the transaction fails.</p><div><hr></div><p><span>&#128640; </span><strong>Level up your Java &amp; Spring Boot skills.</strong></p><p><span>Join </span><strong>8000+ developers</strong><span> and get weekly, no-fluff content featuring practical coding tips, real-world backend insights, and interview questions based on production scenarios.</span></p><p><strong>Founding Member Offer:</strong><span> Lock in founding member price at $50/year </span><strong>(~$4/month) for life. </strong><span>Limited spot left.</span></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 67+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>Correct Answer</h3><p><strong>B. The listener executes immediately after </strong><code>publishEvent()</code><strong>, even though the transaction later rolls back.</strong></p><h3>Explanation</h3><p>A common misconception is:</p><blockquote><p><strong>&#8220;Spring events are transaction-aware by default.&#8221;</strong></p></blockquote><p>They&#8217;re not.</p><p><code>ApplicationEventPublisher.publishEvent()</code> is synchronous by default.</p><p>When <code>publishEvent()</code> is called, Spring immediately invokes all matching <code>@EventListener</code> methods.</p><p>The listener has no knowledge that the surrounding transaction will later fail.</p><p></p><h3>What actually happens?</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lwHt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lwHt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 424w, https://substackcdn.com/image/fetch/$s_!lwHt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 848w, https://substackcdn.com/image/fetch/$s_!lwHt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 1272w, https://substackcdn.com/image/fetch/$s_!lwHt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lwHt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png" width="1344" height="1204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1204,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152425,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206235618?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lwHt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 424w, https://substackcdn.com/image/fetch/$s_!lwHt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 848w, https://substackcdn.com/image/fetch/$s_!lwHt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 1272w, https://substackcdn.com/image/fetch/$s_!lwHt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad0aaac3-9139-4fee-95bc-1b9071fb4d43_1344x1204.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The email has already been sent.</p><h3>The Correct Solution</h3>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-boot-interview-the-event-that">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Spring Boot Interview Quiz : Why Is CPU Low but Latency High?]]></title><description><![CDATA[Can you spot the hidden scalability bottleneck?]]></description><link>https://javabulletin.substack.com/p/spring-boot-interview-quiz-why-is</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-interview-quiz-why-is</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Tue, 28 Jul 2026 13:03:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gQEO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Context</h3><p>Your application reserves inventory</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gQEO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gQEO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 424w, https://substackcdn.com/image/fetch/$s_!gQEO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 848w, https://substackcdn.com/image/fetch/$s_!gQEO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 1272w, https://substackcdn.com/image/fetch/$s_!gQEO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gQEO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png" width="1396" height="1252" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1252,&quot;width&quot;:1396,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:212973,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/208168475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gQEO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 424w, https://substackcdn.com/image/fetch/$s_!gQEO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 848w, https://substackcdn.com/image/fetch/$s_!gQEO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 1272w, https://substackcdn.com/image/fetch/$s_!gQEO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb601350b-714f-4462-ad93-e7942605b7a5_1396x1252.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>During a flash sale:</p><ul><li><p>Application CPU stays below 20%</p></li><li><p>Database CPU stays below 30%</p></li><li><p>API latency jumps from 80 ms to 12 seconds</p></li><li><p>Thread dumps show many threads blocked inside <code>findById()</code></p></li></ul><h3>What is the BEST explanation?</h3><p><strong>A.</strong> Spring Data JPA is leaking database connections.</p><p><strong>B.</strong> The pessimistic lock is held while the external payment validation executes, forcing other transactions to wait.</p><p><strong>C.</strong> Hibernate retries failed transactions automatically.</p><p><strong>D.</strong> The database optimizer stopped using indexes because of the lock.</p><div><hr></div><p>&#128640; <strong>Level up your Java &amp; Spring Boot skills.</strong></p><p>Join <strong>8000+ developers</strong> and get weekly, no-fluff content featuring practical coding tips, real-world backend insights, and interview questions based on production scenarios.</p><p><strong>Founding Member Offer:</strong> Lock in founding member price at $50/year <strong>(~$4/month) for life. </strong>Limited spot left.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>See what readers are saying &#128071;</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6vpN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 424w, https://substackcdn.com/image/fetch/$s_!6vpN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 848w, https://substackcdn.com/image/fetch/$s_!6vpN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 1272w, https://substackcdn.com/image/fetch/$s_!6vpN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6vpN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png" width="1456" height="1129" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1129,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:231231,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/208168475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6vpN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 424w, https://substackcdn.com/image/fetch/$s_!6vpN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 848w, https://substackcdn.com/image/fetch/$s_!6vpN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 1272w, https://substackcdn.com/image/fetch/$s_!6vpN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96086079-49cb-4c04-b904-508ef10c4962_1594x1236.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h4>Answer</h4><p><strong>B. </strong></p><p><code>PESSIMISTIC_WRITE</code> acquires an exclusive row lock as soon as the row is read.</p><p>The transaction then performs a slow network call:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">paymentGateway.validateCustomer();</code></pre></div><p>Since the transaction hasn&#8217;t committed yet, the row lock remains held during the external API call.</p><p>Every other purchase for the same product waits for that lock to be released.</p><p>The result is:</p><ul><li><p>Low CPU utilization</p></li><li><p>High response time</p></li><li><p>Growing thread pool</p></li><li><p>Long database lock wait times<br></p></li></ul><p>The bottleneck isn&#8217;t computation, it&#8217;s waiting.</p><p></p><h3>Some other important points</h3><h4>1. Lock Duration Matters More Than Lock Type</h4><p>Holding a lock for 50 ms is very different from holding it for 5 seconds.</p><p>The real issue is that the transaction includes slow I/O.</p><h4>2. Never Perform Remote Calls While Holding Database Locks</h4><p>Bad:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oXnc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oXnc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 424w, https://substackcdn.com/image/fetch/$s_!oXnc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 848w, https://substackcdn.com/image/fetch/$s_!oXnc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 1272w, https://substackcdn.com/image/fetch/$s_!oXnc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oXnc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png" width="1278" height="516" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:516,&quot;width&quot;:1278,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35283,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/208168475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oXnc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 424w, https://substackcdn.com/image/fetch/$s_!oXnc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 848w, https://substackcdn.com/image/fetch/$s_!oXnc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 1272w, https://substackcdn.com/image/fetch/$s_!oXnc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37836871-bb82-45da-9d6f-7e5ecee3150d_1278x516.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Better:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S957!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S957!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 424w, https://substackcdn.com/image/fetch/$s_!S957!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 848w, https://substackcdn.com/image/fetch/$s_!S957!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 1272w, https://substackcdn.com/image/fetch/$s_!S957!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S957!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png" width="1434" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1434,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49456,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/208168475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!S957!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 424w, https://substackcdn.com/image/fetch/$s_!S957!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 848w, https://substackcdn.com/image/fetch/$s_!S957!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 1272w, https://substackcdn.com/image/fetch/$s_!S957!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552975b2-6298-4700-9e90-e10c035cdeba_1434x740.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Throughput Calculation</strong></p><p>If one purchase takes 2 seconds while holding the lock:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_8IX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_8IX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 424w, https://substackcdn.com/image/fetch/$s_!_8IX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 848w, https://substackcdn.com/image/fetch/$s_!_8IX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 1272w, https://substackcdn.com/image/fetch/$s_!_8IX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_8IX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png" width="1450" height="684" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:684,&quot;width&quot;:1450,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51424,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/208168475?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_8IX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 424w, https://substackcdn.com/image/fetch/$s_!_8IX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 848w, https://substackcdn.com/image/fetch/$s_!_8IX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 1272w, https://substackcdn.com/image/fetch/$s_!_8IX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf65b83d-7ff2-4485-8bc0-6c374954a465_1450x684.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Even though the servers appear mostly idle.</p><p></p><h4>What we should monitor?</h4><ul><li><p>Database lock wait time</p></li><li><p>Active transaction duration</p></li><li><p>Connection pool utilization</p></li><li><p>Slow query logs</p></li><li><p>Thread dumps</p></li><li><p>Blocking sessions (<code>pg_locks</code>, <code>SHOW ENGINE INNODB STATUS</code>, etc.)</p></li></ul><p></p><h4>Better Alternatives (Depending on requirements)</h4><ul><li><p>Optimistic locking with retries</p></li><li><p>Atomic SQL update:</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">UPDATE product
SET quantity = quantity - 1
WHERE id = ?
  AND quantity &gt; 0;</code></pre></div><ul><li><p>Inventory reservation queue</p></li></ul><div><hr></div><p>Thats all for this week friends! Thanks for reading this far. If you liked it please share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><blockquote><p><strong><a href="https://javabulletin.substack.com/subscribe?">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</a><span>.</span></strong></p></blockquote><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Engineering With Java: Digest #96]]></title><description><![CDATA[Where AI Meets Ancient EOL Code and Nobody Talks About the Punch Bowl]]></description><link>https://javabulletin.substack.com/p/engineering-with-java-digest-96</link><guid isPermaLink="false">https://javabulletin.substack.com/p/engineering-with-java-digest-96</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Mon, 27 Jul 2026 01:01:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Np02!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>&#128075; </strong><span>Java Devs! I hope you all are doing great. Last few weeks have been very overwhelming for me, for two reasons:</span></p><ol><li><p><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Engineering With Java newsletter reached </mark><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">100</mark></strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);"> paid subscribers &#127881;.</mark></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ywoS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ywoS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 424w, https://substackcdn.com/image/fetch/$s_!ywoS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 848w, https://substackcdn.com/image/fetch/$s_!ywoS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 1272w, https://substackcdn.com/image/fetch/$s_!ywoS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ywoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png" width="1302" height="348" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eea857f2-45e9-4720-907c-5a675490988a_1302x348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:348,&quot;width&quot;:1302,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/208409095?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ywoS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 424w, https://substackcdn.com/image/fetch/$s_!ywoS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 848w, https://substackcdn.com/image/fetch/$s_!ywoS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 1272w, https://substackcdn.com/image/fetch/$s_!ywoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feea857f2-45e9-4720-907c-5a675490988a_1302x348.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="2"><li><p><mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);">I got promoted to Staff Software Engineer (MTS2) at PayPal &#129395;</mark></p></li></ol><p>Thanks for all your wishes , it means world to me.</p><p>Now lets dive into this weeks edition.</p><p><strong>Featuring</strong>: agents that actually plan things, batch jobs moving to MongoDB, and one very cautionary tale about running out of numbers.</p><p>Another week, another pile of Java and AI goodness, from patching (or not patching) end-of-life JDKs, to Embabel hitting GA, to Spring Batch getting cozy with MongoDB. Grab your coffee (or whatever Jerry was drinking) and dig in.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Np02!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 424w, https://substackcdn.com/image/fetch/$s_!Np02!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 848w, https://substackcdn.com/image/fetch/$s_!Np02!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 1272w, https://substackcdn.com/image/fetch/$s_!Np02!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Np02!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png" width="1406" height="904" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:904,&quot;width&quot;:1406,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:183517,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/208409095?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Np02!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 424w, https://substackcdn.com/image/fetch/$s_!Np02!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 848w, https://substackcdn.com/image/fetch/$s_!Np02!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 1272w, https://substackcdn.com/image/fetch/$s_!Np02!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bf8bb90-6e81-4337-8b35-b874516cfbc3_1406x904.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 7900+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>Upgrade to paid now (60% discount) and get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 67+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Articles Of The Week (8)</mark></strong></h1><p style="text-align: center;"></p><h4><strong>&#187; <a href="https://foojay.io/today/ai-found-the-bugs-whos-patching-your-eol-java-code/">AI Found the Bugs. Who&#8217;s Patching Your EOL Java Code?</a></strong></h4><p>AI usage accelerates the discovery of security vulnerabilities but it doesn&#8217;t address the growing risk for growing organization running end of life Java versions. AI helps uncover bug faster but unsupported JDK no longer receives security patches. This leaves critical system vulnerable. Finding bug with AI is just half the battle, real challenge is being on supported version so that the vulnerability can actually be fixed.</p><h4><strong>&#187; <a href="https://www.danvega.dev/blog/embabel-1-0-ga">Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA</a></strong></h4><p>First stable release of Rod Johnson&#8217;s AI agent framework for JVM goes live. Embabel built on top of Spring AI, helps Java engineers build deterministic and production ready AI agents using Goal-Oriented Action Planning instead of relying solely on LLM reasoning. This first stable release promotes key API like RAG to production, adds broader model and MCP support, and is no fully available on Maven central.</p><h4><strong>&#187; <a href="https://dev.to/codenameone/ar-and-vr-in-java-arkit-arcore-and-a-virtual-room-you-can-debug-851">AR And VR In Java</a></strong></h4><p>Java is no longer limited to just backend systems. As a Java developer, we can build Augmented Reality (AR) and Virtual Reality (VR) applications by integrating with ARKit, ARCore, and virtual room environment. </p><h4><strong>&#187; <a href="https://www.danvega.dev/blog/spring-ai-tool-calling-advisor-2-0">Spring AI 2.0 Tool Calling: Build a Live Claude-Style UI</a></strong></h4><p>Spring AI 2.0 provides Tool Calling features that prevents sending every available tool to LLM on every request. Instead, it intelligently identifies tools that are responsible for current prompt. This reduces token usage and drive cost down.</p><h4><strong>&#187; <a href="https://feeds.feedblitz.com/~/961624313/0/baeldung~Integrating-Local-LLMs-with-Spring-AI-Using-LM-Studio">Integrating Local LLMs with Spring AI Using LM Studio</a></strong></h4><p>One of the thing Spring AI solving is how easy it makes to use AI models locally. Spring AI integrates with LM studio ( &#8220;Docker desktop for AI models&#8220;) and allow application to use local chat and embedding models through OpenAI compatible API. One added advantage is that the sensitive data stays on the local system, enables offline development and saves API cost.</p><h4><strong>&#187; <a href="https://foojay.io/today/warm-up-fast-run-lean-vertical-scaling-for-java-on-kubernetes-with-azul-prime-and-kedify/">Vertical Scaling for Java on Kubernetes with Azul Prime and Kedif</a></strong></h4><p>Do you know that Java application takes extra CPU during JVM warm-up, but keeping those resources allocated after startup wastes infrastructure. Azul Prime and Kedify can work together and temporarily boost CPU during JIT compilation and then automatically scale resources down once the JVM is fully optimized.</p><h4><strong>&#187; <a href="https://dev.to/anchildress1/jerry-ran-out-of-numbers-but-drank-all-the-punch-ne9">Jerry Ran Out of Numbers But Drank All the Punch</a></strong></h4><p>A debugging story that shows how multiple production issues ( connection pool exhaustion, deadlocks and timeouts ) were all symptom of single root cause. An infinite identifier allocation loop triggered after finite ID range was exhausted. Good learning for us engineers is that the biggest production failures often start with small overlooked assumption.</p><h4><strong>&#187; <a href="https://dev.to/aabhassao/spring-deep-dive-transactions-2k8b">Spring Deep Dive: Transactions</a></strong></h4><p>This is great practical guide to Spring's <code>@Transactional</code>. Gist is that the transactional support provides Spring service a proxy that  handles begin/commit/rollback automatically, giving us atomicity. Discusses<br>-  Isolation levels(<code>READ_UNCOMMITTED</code> &#8594; <code>SERIALIZABLE</code>) and <br>- Propagation (<code>REQUIRED</code> vs <code>REQUIRES_NEW</code>) <br>- Self-invocation silently skipping the proxy, <br>- Private methods not being proxied, <br>- Checked exceptions not triggering rollback by default, <br>- Holding transactions open too long exhausting the connection pool.</p><div><hr></div><p><strong>&#128226; <mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have a product or services that you like to present in front of ~8000  Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Videos Of The Week (4)</mark></strong></h1><h4>&#187; <a href="https://www.infoq.com/presentations/otel-slm-ai/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">From OTEL to SLMs: Distilling Frontier Model Behaviour from Production Telemetry</a></h4><p>Ben built an AI powered code editor tool (LSP)  and used OpenTelemetry to capture his own accept/reject/regenerate interaction as training data to use it as small local fine-tuned model to his coding style. Ben generalizes this into platform pattern, instrument with OTel, captures user feedback, distill into small model, deploy and iterate. Ben argues that this approach let engineers stays in control with their tool. </p><h4>&#187; <a href="https://www.youtube.com/watch?v=UlgvxMTDAu8&amp;t=1s">AI Solutions with Spring AI 2.0 and Java</a></h4><p>Dan Vega and Lisa Ross discusses that the Spring AI&#8217;s model agnostic abstraction lets you swap the LLM without code change and structured JSON output makes responses reliably typed. They discuss Embabel framework for its deterministic and goal oriented agents. They also note that as model improve , prompt engineer will matters less, also Java is enough for AI integration and no need to re-platform to python.</p><h4>&#187; <a href="https://www.youtube.com/watch?v=JOXpBgb4Wk8">Stop Building AI Wrappers Build Agents</a></h4><p>Prashant ( Google APAC lead ) touches on :</p><ul><li><p>MCP is stateful and build for chatty system</p></li><li><p>Agents should be targeting user goals and not follow the rigid steps</p></li><li><p>Local models like Gemma4 inherits reasoning from Gemma3 but they lack worlds knowledge and not good for deep reasoning but they are good at local task.</p></li></ul><h4>&#187; <a href="https://www.youtube.com/watch?v=wNHb6gvvtO4">MongoDB-backed Spring Batch Job Repositories</a></h4><p>Josh Long is back with another demo where he uses mongodb as state tracker for spring boot batch job using new MongoDB support (via Spring Boot 4.1's auto-configuration). He reads customer records in chunks and load them to postgres but manages jobs progress tacker in MongoDB.</p><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(208, 224, 227)" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">In-house Blogs (4)</mark></strong></h1><blockquote><p><strong><a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why">Spring Data JPA Interview Quiz : Why did this query return duplicate users?</a></strong></p></blockquote><blockquote><p><strong><a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why-762">Spring Data JPA Interview Quiz : Why did Hibernate execute an UPDATE without calling save()?</a></strong></p></blockquote><blockquote><p><strong><a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why">Spring Data JPA Interview Quiz : Why did this query return duplicate users?</a></strong></p></blockquote><blockquote><p><strong><a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-the">Spring Data JPA Interview Quiz: The Lazy Loading Trap</a></strong></p></blockquote><p></p><h4><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">Checkout full list her</a>e</strong></h4><div><hr></div><p>Thats all for this week friends! Thanks for reading this far. If you liked it please like and share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><p></p><p><strong><a href="https://javabulletin.substack.com/subscribe?"><mark data-color="#fce5cd" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</mark></a><mark data-color="#fce5cd" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);"><span>.</span></mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong>&#128226; <mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If you have a product or services that you like to present in front of ~8000  Java and Spring Developers , considering sponsoring this newsletter.</mark></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/sponsor-java-bulletin&quot;,&quot;text&quot;:&quot;Sponsorship Details&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/sponsor-java-bulletin"><span>Sponsorship Details</span></a></p><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Spring Boot Interview Quiz: The Hidden Order of Your Beans]]></title><description><![CDATA[A classic Spring Boot interview question on bean ordering and dependency injection.]]></description><link>https://javabulletin.substack.com/p/spring-boot-interview-quiz-the-hidden</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-interview-quiz-the-hidden</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Fri, 24 Jul 2026 12:52:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!r8qz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><h3>Question</h3></blockquote><p>You have two implementations of the same interface and Your service injects all implementations:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r8qz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r8qz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 424w, https://substackcdn.com/image/fetch/$s_!r8qz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 848w, https://substackcdn.com/image/fetch/$s_!r8qz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 1272w, https://substackcdn.com/image/fetch/$s_!r8qz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r8qz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png" width="1450" height="878" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:878,&quot;width&quot;:1450,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159020,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206235224?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r8qz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 424w, https://substackcdn.com/image/fetch/$s_!r8qz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 848w, https://substackcdn.com/image/fetch/$s_!r8qz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 1272w, https://substackcdn.com/image/fetch/$s_!r8qz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fced2e4d5-1070-4775-9688-e39dd9f141ce_1450x878.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What is the order of <code>paymentServices</code>?</p><p><strong>A.</strong></p><pre><code><code>StripePaymentService
PaypalPaymentService</code></code></pre><p><strong>B.</strong></p><pre><code><code>PaypalPaymentService
StripePaymentService</code></code></pre><p><strong>C. </strong>Random order depending on JVM startup.</p><p><strong>D. </strong>Spring throws an exception because multiple beans of the same type exist.</p><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 7900+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo</strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 67 real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><blockquote><h3>Correct Answer</h3></blockquote><p><strong>B.</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">PaypalPaymentService
StripePaymentService</code></pre></div><h4>Explanation</h4><p>When Spring injects a single bean:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Autowired
PaymentService paymentService;</code></pre></div><p>multiple implementations cause:</p><pre><code><code>NoUniqueBeanDefinitionException</code></code></pre><p>unless we use <code>@Primary</code> or <code>@Qualifier</code>.</p><p>However, injecting a collection tells Spring:</p><blockquote><p>&#8220;Inject every bean that implements this interface.&#8221;</p></blockquote><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Autowired
List&lt;PaymentService&gt; paymentServices;</code></pre></div><p>Spring collects all matching beans and sorts them before injection.</p><p>The sorting order is:</p><ol><li><p><code>@Order</code></p></li><li><p><code>Ordered</code> interface</p></li><li><p>Registration order (implementation detail&#8212;not guaranteed and shouldn&#8217;t be relied upon)<br></p></li></ol><p>Since:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Order(1)
PaypalPaymentService</code></pre></div><p>comes before</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Order(2)
StripePaymentService</code></pre></div><p>the injected list becomes:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">PaypalPaymentService
StripePaymentService</code></pre></div><p></p><blockquote><h3>What are different options to control ordering?</h3></blockquote><p></p><h4>Option 1: <code>@Order</code></h4><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Order(1)
@Service
class PaypalPaymentService implements PaymentService {
}</code></pre></div><p>Lower values indicate higher priority.</p><h4>Option 2: Implement <code>Ordered</code></h4><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Service
class StripePaymentService implements PaymentService, Ordered {

    @Override
    public int getOrder() {
        return 2;
    }
}</code></pre></div><h4>Option 3: Sort Explicitly</h4><p>For business-critical workflows, it&#8217;s often better to sort based on business rules instead of relying on Spring&#8217;s ordering.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">paymentServices.stream()
    .sorted(comparing(PaymentService::priority))
    .toList();</code></pre></div><p></p><blockquote><h3>Discuss Some Real-World Usage</h3></blockquote><p>Injecting a collection of strategy implementations is a common Spring pattern used for:</p><ul><li><p>Payment routing</p></li><li><p>Fraud detection pipelines</p></li><li><p>Authentication providers</p></li><li><p>Validation chains</p></li><li><p>Rule engines</p></li><li><p>Message processors</p></li><li><p>Notification channels</p></li></ul><p>For example:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">List&lt;FraudCheck&gt; fraudChecks;</code></pre></div><p>Spring might inject:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">VelocityCheck
BlacklistCheck
RiskScoreCheck</code></pre></div><p> Application simply executes them in order.</p><p></p><blockquote><h3>What happens if <code>@Order</code> is removed?</h3></blockquote><p>Spring still injects all matching beans, but the order falls back to bean registration order. Since registration order is an implementation detail, we shouldn't depend on it.</p><p></p><blockquote><h3>Does <code>@Order</code> affect which bean is injected here?</h3></blockquote><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Autowired
PaymentService paymentService;</code></pre></div><p>No.</p><p><code>@Order</code> only affects collections, arrays, and ordered extension points. For a single bean injection, we should use <code>@Primary</code> or <code>@Qualifier</code>.</p><p></p><blockquote><h3>What if one payment strategy throws an exception?</h3></blockquote><p>A robust design should isolate failures so that one strategy doesn&#8217;t necessarily stop the rest of the pipeline.</p><p>Common approaches include:</p><ul><li><p>Catching exceptions per strategy and continuing when appropriate</p></li><li><p>Logging failures and collecting results</p></li><li><p>Using retry or circuit breaker patterns for external calls</p></li><li><p>Returning a result object instead of throwing exceptions</p></li><li><p>Applying resilience libraries such as Resilience4j</p></li></ul><div><hr></div><p>Thats all for this week friends! Thanks for reading this far. If you liked it please share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><blockquote><p><strong><a href="https://javabulletin.substack.com/subscribe?">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</a>.</strong></p></blockquote><p>Happy Coding &#128640;<br>Suraj</p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a> | <a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a> | <a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a> | <a href="https://x.com/immishrasuraj">Twitter</a> | <a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Spring Data JPA Interview Quiz : Why did Hibernate execute an UPDATE without calling save()?]]></title><description><![CDATA[The JPA dirty checking question that appears in countless Spring Boot interviews]]></description><link>https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why-762</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why-762</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Wed, 22 Jul 2026 13:00:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ByyC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><h2>Question</h2></blockquote><p>Consider the following entity &amp; service:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ByyC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ByyC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 424w, https://substackcdn.com/image/fetch/$s_!ByyC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 848w, https://substackcdn.com/image/fetch/$s_!ByyC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 1272w, https://substackcdn.com/image/fetch/$s_!ByyC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ByyC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png" width="1196" height="952" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:952,&quot;width&quot;:1196,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112949,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206236280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ByyC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 424w, https://substackcdn.com/image/fetch/$s_!ByyC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 848w, https://substackcdn.com/image/fetch/$s_!ByyC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 1272w, https://substackcdn.com/image/fetch/$s_!ByyC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb923f33f-e13b-446c-951a-f39cb059eaa2_1196x952.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>What happens when this method completes?</strong></p><p>A.The database is not updated because <code>save()</code> was never called.</p><p>B.Hibernate automatically detects the change and executes an <code>UPDATE</code>.</p><p>C.The database is not updated because entities are immutable by default.</p><p>D.The database is updated only if <code>flush()</code> is called manually.</p><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 7900+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo ( 97 already converted to paid, 3 remaining)</strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 67 real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><blockquote><h3>Correct Answer</h3></blockquote><p><strong>B. Hibernate automatically detects the change and executes an </strong><code>UPDATE</code><strong>.</strong></p><h4><strong>Explanation</strong></h4><p>The call to:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">userRepository.findById(id)</code></pre></div><p>returns a managed entity because it is loaded within an active transaction.</p><p>When we modify the entity:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">user.setEmail("new@email.com");</code></pre></div><p>Hibernate records that the managed object&#8217;s state has changed.</p><p>When the transaction commits, Hibernate performs Dirty Checking.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">Transaction Starts
        &#9474;
        &#9660;
findById()
        &#9474;
Managed Entity
        &#9474;
        &#9660;
user.setEmail(...)
        &#9474;
Entity State Changes
        &#9474;
        &#9660;
Dirty Checking
        &#9474;
        &#9660;
UPDATE users
SET email='new@email.com'
WHERE id=?</code></pre></div><p>No explicit <code>save()</code> call is required.</p><p></p><blockquote><h3>What SQL gets executed?</h3></blockquote><p></p>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why-762">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Spring Data JPA Interview Quiz : Why did this query return duplicate users?]]></title><description><![CDATA[The hidden JOIN FETCH behavior that surprises even experienced Spring Boot developers.]]></description><link>https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Mon, 20 Jul 2026 13:03:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OaMx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><h3>Question</h3></blockquote><p>Consider the following entity &amp; repository :</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OaMx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OaMx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 424w, https://substackcdn.com/image/fetch/$s_!OaMx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 848w, https://substackcdn.com/image/fetch/$s_!OaMx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 1272w, https://substackcdn.com/image/fetch/$s_!OaMx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OaMx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png" width="1102" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1102,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98695,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206236474?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OaMx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 424w, https://substackcdn.com/image/fetch/$s_!OaMx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 848w, https://substackcdn.com/image/fetch/$s_!OaMx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 1272w, https://substackcdn.com/image/fetch/$s_!OaMx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f9844e-316d-4332-a55d-b36aa05a4ff5_1102x800.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Database</strong>:</p><p><strong>Users</strong></p><p>id         name</p><p>1            Alice</p><p></p><p><strong>Orders</strong></p><p>id         user_id          product  <br>101.         1                    OrderA</p><p>102         1                    OrderB</p><p></p><blockquote><h4>What will <code>findUsers()</code> return?</h4></blockquote><p><strong>A.</strong></p><pre><code><code>Alice</code></code></pre><p><strong>B.</strong></p><pre><code><code>Alice
Alice</code></code></pre><p><strong>C.</strong></p><pre><code><code>Throws an exception</code></code></pre><p><strong>D.</strong></p><pre><code><code>Empty result</code></code></pre><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 7900+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo ( 97 already converted to paid, 3 remaining)</strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 67 real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p></p><blockquote><h4>Correct Answer</h4></blockquote><p><strong>B. Alice, Alice</strong></p><p></p><h4>Explanation</h4><p>A <code>JOIN FETCH</code> performs a SQL join and eagerly loads the associated collection.</p><p>Hibernate generates SQL similar to:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">SELECT u.*, o.*
FROM users u
JOIN orders o
ON u.id = o.user_id;</code></pre></div><p>The database returns:</p><p><strong>User  Order</strong>  </p><p>Alice   OrderA</p><p>Alice    OrderB</p><p>Notice that <strong>Alice appears once for every matching order</strong>.</p><p>Hibernate creates <strong>only one </strong><code>User</code><strong> entity instance</strong> in the persistence context (thanks to the first-level cache), but the <strong>result list contains one reference for each SQL row</strong>.</p><p>So the returned list looks like:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">[
  User(id=1),
  User(id=1)
]</code></pre></div><p>Both entries actually reference the <strong>same Java object</strong>, but the list contains duplicate references.</p><p></p><blockquote><h4>How would you fix this so that only one user is returned?</h4></blockquote><p>Use <code>DISTINCT</code> in JPQL:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">@Query("""
select distinct u
from User u
join fetch u.orders
""")
List&lt;User&gt; findUsers();</code></pre></div><p>Hibernate removes duplicate root entities from the result list while still fetching the collection efficiently.</p><p></p><blockquote><p><strong>Is </strong><code>JOIN FETCH</code><strong> safe with pagination?</strong></p></blockquote>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-why">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Engineering With Java: Digest #95]]></title><description><![CDATA[Java enters the AI era &#8212; exploring Spring AI, MCP, virtual threads, JVM performance, and modern backend architecture.]]></description><link>https://javabulletin.substack.com/p/engineering-with-java-digest-95</link><guid isPermaLink="false">https://javabulletin.substack.com/p/engineering-with-java-digest-95</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Sat, 18 Jul 2026 16:46:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jFMj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>&#128075; </strong><span>Java Devs! Welcome to this week&#8217;s addition! I hope you&#8217;re all doing great.</span></p><p>This week is packed with content on two of the hottest topics in the Java ecosystem: <strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">AI</mark></strong> and <strong><mark data-color="#d0e0e3" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">modern Java architecture</mark></strong><mark data-color="#d0e0e3" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">.</mark></p><p>We'll learn how Java is positioning itself for the AI era with Spring AI, MCP, and AI-agent workflows, while also diving into practical engineering topics like virtual threads, cache stampedes, HotSpot internals, resilient microservices, rollout strategies, and application modernization.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jFMj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 424w, https://substackcdn.com/image/fetch/$s_!jFMj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 848w, https://substackcdn.com/image/fetch/$s_!jFMj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 1272w, https://substackcdn.com/image/fetch/$s_!jFMj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jFMj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png" width="1316" height="926" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:926,&quot;width&quot;:1316,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175270,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/207562660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jFMj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 424w, https://substackcdn.com/image/fetch/$s_!jFMj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 848w, https://substackcdn.com/image/fetch/$s_!jFMj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 1272w, https://substackcdn.com/image/fetch/$s_!jFMj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4e7fd32-ec66-48c7-918e-f2dc066d17fd_1316x926.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 8000+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo ( 94 already converted to paid, 6 remaining)</strong></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 68+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Articles Of The Week</mark></strong></h1><h4><a href="https://www.danvega.dev/blog/can-you-use-java-for-ai">Can You Use Java for AI? Why Java Is Better Positioned Than You Think</a></h4><p>This article argues that Java is no longer just an enterprise language, it&#8217;s becoming a strong choice for building production AI applications. Instead of focusing on model training (where Python dominates), Java excels at integrating LLMs into enterprise systems using frameworks like Spring AI, LangChain4j, and MCP. Existing Java developers can leverage their expertise in APIs, security, scalability, and business logic to build AI-powered applications without learning an entirely new ecosystem.</p><h4><a href="https://dzone.com/articles/java-21-cache-stampedes">Mitigating Cache Stampedes in Dynamic API Translation Using Java 21 Virtual Threads</a></h4><p>This article explores how cache stampedes (or the &#8220;thundering herd&#8221; problem) can overwhelm backend services when many concurrent requests try to rebuild the same expired cache entry. The article demonstrates how Java 21&#8217;s virtual threads make it easier to implement request coalescing, allowing only one thread to refresh the cache while others wait, reducing database load, improving throughput, and preventing cascading failures in high-concurrency applications.</p><h4><a href="https://dzone.com/articles/stateless-mcp-servers">Going Stateless: Scaling MCP Servers to Cloud-Native Java and HTTP</a></h4><p>This article explains how designing Model Context Protocol (MCP) servers without session state improves scalability, resilience, and deployment flexibility. By making every request self-contained, MCP servers can be horizontally scaled behind load balancers, recover from failures more easily, and simplify cloud-native deployments while avoiding the complexity of sticky sessions and shared server state.</p><h4><a href="https://www.azul.com/blog/stop-rewriting-working-java-applications-modernize-without-the-cost/">Stop Rewriting Working Java Applications: Modernize Without the Cost</a></h4><p>This article argues that modernization doesn't have to mean a complete rewrite. Instead, organizations can extend the life of stable Java applications by upgrading runtimes, adopting modern JDKs, removing technical debt, and automating refactoring. This incremental approach reduces cost, minimizes risk, and delivers modernization benefits without disrupting proven business-critical systems.</p><h4><a href="https://debugagent.com/how-we-beat-hotspot-performance-by-cheating-but-not-like-that">How We Beat HotSpot Performance (By Cheating, But Not Like That)</a></h4><p>This article explains how the authors improved JVM performance by exploiting implementation details rather than changing application logic. The article explores HotSpot internals, JIT compilation behavior, and low-level optimization techniques to outperform default JVM execution, highlighting how a deep understanding of the runtime can unlock performance gains that traditional application-level optimizations often miss.</p><h4><a href="https://foojay.io/today/virtual-thread-pinning-field-guide/">Your Loom App Quietly Became a Thread Pool Again: A Field Guide to Virtual Thread Pinning</a></h4><p>This article explains one of the biggest performance pitfalls of Project Loom: virtual thread pinning. It covers what causes pinning, how JDK 24 significantly reduces it with JEP 491, and practical techniques to detect and eliminate pinned threads using JFR, thread dumps, and better synchronization patterns like <code>ReentrantLock</code>. A must-read for anyone adopting virtual threads in production.</p><h4><a href="https://medium.com/javarevisited/a-practical-guide-to-software-rollout-strategies-b46989fb95d4?source=rss----d3a191ac6ed---4">A Practical Guide to Software Rollout Strategies</a></h4><p>This article explains how modern deployment techniques reduce the risk of production outages by separating deployment from release. It compares strategies like rolling deployments, blue-green, canary releases, feature flags, dark launches, and ring-based rollouts, highlighting their trade-offs, rollback capabilities, and ideal use cases. The key takeaway is that successful software delivery relies on minimizing blast radius, automating rollbacks, and combining progressive delivery techniques with strong observability.</p><p></p><h4><a href="https://medium.com/@AlexanderObregon/resilience4j-bulkheads-in-spring-boot-for-concurrency-limits-d079cf074965?source=rss-4f9731d3205------2">Resilience4j Bulkheads in Spring Boot for Concurrency Limits</a></h4><p>This article explains how the Bulkhead pattern prevents a slow or failing dependency from exhausting  application&#8217;s resources by limiting concurrent requests. It covers both SemaphoreBulkhead and ThreadPoolBulkhead, their configuration in Spring Boot, tuning options like <code>maxConcurrentCalls</code> and <code>maxWaitDuration</code>, and best practices for combining bulkheads with retries, timeouts, metrics, and observability to build resilient services.</p><h4><a href="https://dzone.com/articles/agents-md-java">AGENTS.md Makes Your Java Codebase AI-Agent Ready</a></h4><p>This article explores how an AGENTS.md file acts as a repository-level guide for AI coding agents, providing project-specific instructions such as build commands, coding standards, testing requirements, and architectural conventions. By giving agents consistent context, teams can improve the quality, accuracy, and consistency of AI-generated code while reducing repetitive prompts and onboarding effort.</p><p></p><h1 style="text-align: center;"><strong><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Videos Of The Week</mark></strong></h1><h4><a href="https://www.youtube.com/watch?v=ZqGSg4b_cZA">The Java Story | The Official Documentary</a></h4><p>Java began as Oak, a programming language for consumer electronics, but after that project failed, its creators pivoted to the emerging web. Its "write once, run anywhere" philosophy, powered by the JVM, solved cross-platform compatibility and combined advanced runtime features like garbage collection and multithreading with a familiar C-like syntax. Java quickly evolved from browser applets to enterprise applications through technologies like Servlets, becoming a foundation for modern backend development. The documentary also highlights Java's rivalry with Microsoft, whose leadership viewed the JVM as a major threat to Windows' dominance.</p><h4><a href="https://www.youtube.com/watch?v=McG2FlBkbxI">How a Junior Developer Created One of Java's Most Widely Used Server Technologies</a></h4><p>Servlets became Java's bridge between web requests and enterprise applications. The collaborative development of the Servlet specification and its open-source reference implementation, <strong>Apache Tomcat</strong>, laid the foundation for modern Java web development and inspired the <strong>Java Community Process (JCP)</strong> that still governs Java standards today.</p><h4><a href="https://www.youtube.com/watch?v=R6XF9x49UBw">from Brackets to Beans to Boot</a></h4><p>Josh Long explains why Spring exists by walking through the evolution from plain Java to Spring Boot. He starts with raw JDBC code to highlight common problems like boilerplate, manual dependency management, and transaction handling, then introduces core Spring concepts, dependency injection, portable service abstractions, and auto-configuration&#8212;to show how they eliminate complexity. The result is cleaner, more maintainable code where developers can focus on business logic instead of infrastructure.</p><h4><a href="https://www.youtube.com/watch?v=vxOeeNyOtZY">Self-Correcting Structured Output in Spring AI 2.0</a></h4><p>This video introduces a smarter way to generate reliable structured responses from LLMs. Instead of failing when AI output doesn't match the expected schema, Spring AI 2.0 automatically validates the response, sends validation errors back to the model, and retries until the output conforms to the required format. This reduces parsing failures, improves reliability, and lets developers work with strongly typed Java objects without writing complex validation or retry logic themselves.</p><h1 style="text-align: center;"><strong><mark data-color="rgb(208, 224, 227)" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">In-house Blogs</mark></strong></h1><ul><li><p><strong><a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-the">Spring Data JPA Interview Quiz: The Lazy Loading Trap</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-quiz-which-bean-gets">Spring Boot Quiz: Which Bean Gets Injected?</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-real">Spring Boot Interview Question &#8212; Real-Time Seat Map Updates</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-kafka">Spring Boot Interview Question - Kafka Consumer Became a Zombie</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/java-bug-fix-interview-question-payment">Java Bug Fix Interview Question &#8212; Payment Retry Bug</a></strong></p></li></ul><h4><strong>      <a href="https://javabulletin.substack.com/p/java-interview-questions">Checkout full list here</a></strong></h4><p></p><p>Thats all for this week friends! Thanks for reading this far. If you liked it please share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><blockquote><p><strong><a href="https://javabulletin.substack.com/subscribe?">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</a><span>.</span></strong></p></blockquote><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Spring Data JPA Interview Quiz: The Lazy Loading Trap]]></title><description><![CDATA[It worked on my machine... until Jackson asked for orders]]></description><link>https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-the</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-the</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Tue, 14 Jul 2026 21:34:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yNmy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Scenario</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yNmy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yNmy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 424w, https://substackcdn.com/image/fetch/$s_!yNmy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 848w, https://substackcdn.com/image/fetch/$s_!yNmy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 1272w, https://substackcdn.com/image/fetch/$s_!yNmy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yNmy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png" width="1368" height="1462" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1462,&quot;width&quot;:1368,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:229050,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206237299?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yNmy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 424w, https://substackcdn.com/image/fetch/$s_!yNmy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 848w, https://substackcdn.com/image/fetch/$s_!yNmy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 1272w, https://substackcdn.com/image/fetch/$s_!yNmy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1d85ab-f96a-4ebd-9399-e557a039be34_1368x1462.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You have <strong>Open Session in View (OSIV) disabled</strong>:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">spring.jpa.open-in-view=false</code></pre></div><p>When a client calls:</p><pre><code>GET /users/1</code></pre><p></p><blockquote><h3><strong>What happens?</strong></h3></blockquote><p><strong>A.</strong> The response is returned successfully because Hibernate automatically loads <code>orders</code>.</p><p><strong>B.</strong> Spring changes <code>LAZY</code> to <code>EAGER</code> during JSON serialization.</p><p><strong>C.</strong> The request fails with <code>LazyInitializationException</code>.</p><p><strong>D.</strong> Hibernate silently returns an empty <code>orders</code> collection.</p><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 7800+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo ( 95 already converted to paid, 5 remaining)</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 67 real world based interview questions and will add up to 100 by end of this year.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><blockquote><h3>Answer</h3></blockquote><p>C. The request fails with <code>LazyInitializationException</code>.</p><blockquote><h3>Why?</h3></blockquote><p>The <code>orders</code> collection is marked as:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@OneToMany(fetch = FetchType.LAZY)</code></pre></div><p>So when this executes:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">repository.findById(id);</code></pre></div><p>Hibernate loads only the <code>User</code>:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">SELECT *
FROM users
WHERE id = 1;</code></pre></div><p>It <strong>does not</strong> load the orders. Instead, Hibernate creates a lazy proxy for the collection.</p><p></p><p>This how the flow would look like</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wokf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wokf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 424w, https://substackcdn.com/image/fetch/$s_!Wokf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 848w, https://substackcdn.com/image/fetch/$s_!Wokf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 1272w, https://substackcdn.com/image/fetch/$s_!Wokf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wokf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png" width="423" height="774" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:774,&quot;width&quot;:423,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70457,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206237299?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wokf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 424w, https://substackcdn.com/image/fetch/$s_!Wokf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 848w, https://substackcdn.com/image/fetch/$s_!Wokf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 1272w, https://substackcdn.com/image/fetch/$s_!Wokf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3daff2-9e70-40bf-844f-f6f4fdfea234_423x774.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Typical error:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">failed to lazily initialize a collection of role:
User.orders:
could not initialize proxy - no Session</code></pre></div><p></p><blockquote><h3>Why doesn't this happen in every Spring Boot application?</h3></blockquote><p></p>
      <p>
          <a href="https://javabulletin.substack.com/p/spring-data-jpa-interview-quiz-the">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Engineering With Java: Digest #94]]></title><description><![CDATA[AI, JVM Performance, Spring AI, Project Detroit & Modern Java]]></description><link>https://javabulletin.substack.com/p/engineering-with-java-digest-94</link><guid isPermaLink="false">https://javabulletin.substack.com/p/engineering-with-java-digest-94</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Mon, 13 Jul 2026 00:25:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3YND!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>&#128075; </strong><span>Java Devs! Welcome to this week&#8217;s addition! I hope you&#8217;re all doing great.</span></p><p>This week, we cover essential insights on:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3YND!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 424w, https://substackcdn.com/image/fetch/$s_!3YND!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 848w, https://substackcdn.com/image/fetch/$s_!3YND!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 1272w, https://substackcdn.com/image/fetch/$s_!3YND!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3YND!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png" width="1294" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:1294,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:193464,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206764715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3YND!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 424w, https://substackcdn.com/image/fetch/$s_!3YND!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 848w, https://substackcdn.com/image/fetch/$s_!3YND!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 1272w, https://substackcdn.com/image/fetch/$s_!3YND!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79da6d76-21d5-4029-b895-ffaaabb4146c_1294x812.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>One Quick Announcement:</strong></p><p><span>We are now planning to actively post on Youtube, mainly solving real world interview questions. </span><a href="https://www.youtube.com/@ewj25"><mark data-color="rgb(255, 229, 153)" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">So consider subscribing</mark></a></p><p><strong><a href="https://www.youtube.com/@ewj25">Youtube Channel</a></strong></p><p>Also, consider sharing your interview questions to me through DM or email (surajmishra150893@gmail.com). I will try to cover them.</p><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 8000+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo ( 94 already converted to paid, 6 remaining)</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 68+ real world based interview questions and will add up to 100 by end of this year.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Articles Of The Week</mark></strong></h1><p><strong><a href="https://foojay.io/today/nulling-out-references-wont-help-your-garbage-collector/">Nulling Out References Won&#8217;t Help Your Garbage Collector</a> : </strong>This article explains that manually setting object references to <code>null</code> rarely helps Java's garbage collector because modern JVMs already determine when objects are no longer reachable. Explicit nulling usually adds unnecessary code and can even interfere with JVM optimizations. The only situations where it may be beneficial are long-running methods or loops where releasing large objects earlier can reduce memory pressure before the method completes. Instead of manually nulling references, developers should focus on eliminating memory leaks, reducing unnecessary object allocations, and understanding object lifecycles&#8212;letting the JVM's garbage collector do its job</p><p><strong><a href="https://quarkus.io/blog/quarkus-langchain4j-opa-guardrails/">Guardrails with OPA Policies in Quarkus LangChain4j</a> : </strong>This article demonstrates how to build fast and cost-effective AI guardrails in Quarkus LangChain4j by combining Open Policy Agent (OPA) with WebAssembly (Wasm). Instead of sending every prompt to an LLM for prompt injection detection, deterministic OPA policies quickly allow or block obvious cases in under a millisecond at zero token cost, while only ambiguous prompts are escalated to an LLM for deeper analysis. This hybrid approach improves performance, reduces LLM costs, externalizes security policies from application code, and provides auditable, platform-independent guardrails for enterprise AI applications.</p><p><strong><a href="https://www.baeldung.com/java-embabel-ai-agent-tool-call-reasoning">LLM Tool Call Reasoning Using Embabel Agentic AI Framework</a> : </strong>The article shows how to build explainable AI agents in Spring AI by capturing the LLM's reasoning during tool selection using the Tool Argument Augmenter. Instead of only seeing which tool was called, developers can also understand <em>why</em> the model chose it, improving debugging, observability, and trust in AI applications. This additional reasoning can be logged, audited, or analyzed to make agent behavior more transparent and easier to troubleshoot in production.</p><p><strong><a href="https://www.infoq.com/news/2026/07/sitar-agent-sidecar-config/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">Airbnb Shares Architecture behind Sitar-Agent Dynamic Configuration Sidecar for Kubernetes Services</a> : </strong>This article shows how to build explainable AI agents in Spring AI by capturing the LLM's reasoning during tool selection using the Tool Argument Augmenter. Instead of only seeing which tool was called, developers can also understand <em>why</em> the model chose it, improving debugging, observability, and trust in AI applications. This additional reasoning can be logged, audited, or analyzed to make agent behavior more transparent and easier to troubleshoot in production.</p><p><strong><a href="https://donraab.medium.com/level-up-your-programming-game-with-a-java-book-and-smalltalk-3c4c9bffbb49">Level Up Your Programming Game with a Java Book and Smalltalk</a> : </strong>Author explains how writing Eclipse Collections Categorically led him back to the ideas of Smalltalk, a language that heavily influenced his approach to software design and Java development. He argues that many of Java's best practices, including cleaner APIs, method categorization, and developer productivity, can be traced back to Smalltalk. It encourages Java developers to learn from classic programming books and languages, emphasizing that timeless design principles can make us better programmer regardless of the language we use.</p><p><strong><a href="https://www.azul.com/blog/the-ai-threat-to-your-java-estates-security-is-coming-from-both-outside-and-in/">The AI Threat to Your Java Estate&#8217;s Security Is Coming from Both Outside and In</a> : </strong>This article explains that AI is changing the Java security landscape from both directions: attackers are using AI to discover and exploit vulnerabilities faster, while developers are increasingly introducing AI-generated code that may contain security flaws. It argues that traditional patching cycles are no longer sufficient and emphasizes the need for complete visibility into Java runtimes, prompt JVM updates, continuous vulnerability assessment, and proactive security governance. The key message is that securing Java estate now requires managing both external AI-driven threats and the internal risks introduced by AI-assisted development.</p><p><strong><a href="https://dzone.com/articles/http-query-java-rest-api-searches">HTTP QUERY in Java: The Missing Method for Complex REST API Searches</a> : </strong>This article introduces the new HTTP <code>QUERY</code> method (RFC 10008) as a better alternative for complex search operations in REST APIs. Unlike <code>GET</code>, which is limited by URL length and query parameters, or <code>POST</code>, which doesn't accurately represent read-only operations, <code>QUERY</code> allows clients to send a structured request body while preserving safe and idempotent HTTP semantics. </p><p><strong><a href="https://medium.com/@AlexanderObregon/tuning-resilience4j-retry-in-spring-boot-without-making-outages-worse-f4c4abecbe68?source=rss-4f9731d3205------2">Tuning Resilience4j Retry in Spring Boot Without Making Outages Worse</a> : </strong>This article explains how to tune Resilience4j Retry in Spring Boot to improve reliability without amplifying failures during outages. Rather than blindly increasing retry counts, it recommends configuring retry limits, exponential backoff with jitter, selective exception handling, and combining retries with circuit breakers and timeouts. The key takeaway is that poorly configured retries can overwhelm struggling services, while well-tuned retry policies help applications recover gracefully without causing retry storms or cascading failures.</p><p><strong><a href="https://foojay.io/today/the-java-story-a-film-about-all-of-us/">The Java Story: A Film About All of Us</a> : </strong>This article highlights "The Java Story," a community-driven documentary that celebrates Java's 30-year journey through the people, innovations, and ecosystem that shaped one of the world's most influential programming languages. Rather than focusing solely on technical features, the film explores Java's impact on developers, open source, enterprise software, and the global community, showcasing how collaboration and continuous evolution have kept Java relevant for decades. It serves as both a historical retrospective and a tribute to the developers who continue to drive the platform forward.</p><div><hr></div><p><mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">&#128226; </mark><strong><mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">Most developers learn Vim by reading cheat sheets.</mark></strong></p><p>The fastest ones build muscle memory instead.</p><p>Gamified practice is surprisingly effective because it trains your fingers&#8212;not just your brain. Even 10 minutes a day can make navigation feel effortless, and those tiny improvements compound over thousands of edits.</p><p>Small habits. Faster coding.</p><p><mark data-color="#fce5cd" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">Checkout: </mark><strong><a href="https://vimgym.io/welcome"><mark data-color="#fce5cd" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">https://vimgym.io/welcome</mark></a></strong></p><div><hr></div><p></p><h1 style="text-align: center;"><strong><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Videos Of The Week</mark></strong></h1><p><strong><a href="https://www.youtube.com/watch?v=pg4NXE9tkIc">Scripting JS and Python with Project Detroit</a> :  </strong>Project Detroit is a new OpenJDK initiative that enables Java applications to run JavaScript (via V8) and Python (via CPython) directly inside the JVM using the <code>javax.script</code> API. Rather than building its own scripting engines like Nashorn, it provides a lightweight bridge to existing native runtimes, simplifying interoperability while maintaining high performance. Detroit will be distributed separately from the JDK, allowing independent versioning, and although still experimental, Oracle says it is already working well internally with plans to expand it through community feedback.</p><p><strong><a href="https://www.youtube.com/watch?v=F4MCnVuKvzA">Java is entering a new era</a> : </strong>Java 26 continues the platform&#8217;s evolution with a simpler language, richer APIs, and faster runtime, introducing features like Stream Gatherers, Scoped Values, the Foreign Function &amp; Memory API, Structured Concurrency, HTTP/3 support, and ongoing improvements to virtual threads, GC, and Project Leyden. The language also reduces boilerplate through compact source files, module imports, primitive pattern matching, lazy constants, and other developer-friendly enhancements while strengthening performance and JVM integrity. </p><p><strong><a href="https://www.youtube.com/watch?v=wcVg4fqYIy8">Idiomatic Kotlin applications with Spring Boot 4</a> :  </strong>shares best practices for building modern Kotlin applications with Spring Boot 4, recommending Gradle Kotlin DSL, Java 25, Kotlin 2.x, WebMVC with virtual threads, and Spring&#8217;s new null-safe APIs powered by JSpecify. He highlights major improvements in Spring Boot 4, including modularization, Bean Registrar DSL, and Kotlin-friendly enhancements that simplify configuration, validation, and Java interoperability. </p><p><strong><a href="https://www.youtube.com/watch?v=WNJFR-_N9bc">Spring AI 2.0: Custom Advisors for Tool &amp; Token Logging</a> : </strong>Author<strong> </strong>demonstrates how to build custom Spring AI Advisors, which act like AOP interceptors around LLM calls, allowing developers to execute logic before and after AI requests. He creates advisors to log available and invoked tools, monitor token usage, and improve visibility into AI interactions without changing application code. The video highlights Advisors as a powerful extension mechanism for observability, debugging, guardrails, and upcoming features like dynamic tool search in Spring AI.</p><p></p><h1 style="text-align: center;"><strong><mark data-color="rgb(208, 224, 227)" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">In-house Blogs</mark></strong></h1><ul><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-quiz-which-bean-gets">Spring Boot Quiz: Which Bean Gets Injected?</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-real">Spring Boot Interview Question &#8212; Real-Time Seat Map Updates</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-kafka">Spring Boot Interview Question - Kafka Consumer Became a Zombie</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/java-bug-fix-interview-question-payment">Java Bug Fix Interview Question &#8212; Payment Retry Bug</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/java-interview-question-interval">Java Interview Question - Interval Aggregation Service Bug</a></strong></p></li></ul><p>Thats all for this week friends! Thanks for reading this far. If you liked it please share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><blockquote><p><strong><a href="https://javabulletin.substack.com/subscribe?">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</a><span>.</span></strong></p></blockquote><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Spring Boot Quiz: Which Bean Gets Injected?]]></title><description><![CDATA[A Bean Injection Mistake That Can Break Production]]></description><link>https://javabulletin.substack.com/p/spring-boot-quiz-which-bean-gets</link><guid isPermaLink="false">https://javabulletin.substack.com/p/spring-boot-quiz-which-bean-gets</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Thu, 09 Jul 2026 03:04:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!b7CP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Scenario</h3><p>You're working on a payment service where multiple payment providers exist.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b7CP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b7CP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 424w, https://substackcdn.com/image/fetch/$s_!b7CP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 848w, https://substackcdn.com/image/fetch/$s_!b7CP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 1272w, https://substackcdn.com/image/fetch/$s_!b7CP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b7CP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png" width="1284" height="1420" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1420,&quot;width&quot;:1284,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:203790,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/206232891?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b7CP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 424w, https://substackcdn.com/image/fetch/$s_!b7CP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 848w, https://substackcdn.com/image/fetch/$s_!b7CP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 1272w, https://substackcdn.com/image/fetch/$s_!b7CP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc79a3b08-095f-4875-9cff-b20fe83a3c93_1284x1420.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Everything compiles successfully.</p><blockquote><h3>What does Spring inject into <code>paymentService</code>?</h3></blockquote><p><strong>A.</strong> <code>StripePaymentService</code></p><p><strong>B.</strong> <code>PaypalPaymentService</code></p><p><strong>C.</strong> Spring randomly picks one implementation.</p><p><strong>D.</strong> Nothing&#8212;the application fails to start because multiple beans match <code>PaymentService</code>.</p><div><hr></div><p>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;<strong>join 7800+ subscribers</strong> for hand-crafted, no-fluff content.</p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo ( 93 already converted to paid, 7 remaining)</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 67 real world based interview questions and will add up to 100 by end of this year.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p></p><h3>Answer</h3><p><strong>D. Nothing&#8212;the application fails to start because multiple beans match </strong><code>PaymentService</code><strong>.</strong></p><p><strong>Typical Startup Error</strong></p><pre><code><code>Parameter 0 of constructor in CheckoutService required a single bean,
but 2 were found:

- stripePaymentService
- paypalPaymentService</code></code></pre><blockquote><h3>Why?</h3></blockquote><p>Spring performs dependency injection by type.</p><p>When it finds multiple beans of the same type, it refuses to guess which one we intended. Unlike some frameworks, Spring does not inject one arbitrarily.</p><p></p><blockquote><h3>How would you fix it?</h3></blockquote><h4>Option 1 &#8212; Use <code>@Primary</code></h4><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Service
@Primary
class StripePaymentService implements PaymentService {
}</code></pre></div><p>Spring now injects <code>StripePaymentService</code> by default.</p><h4>Option 2 &#8212; Use <code>@Qualifier</code></h4><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Autowired
@Qualifier("paypalPaymentService")
private PaymentService paymentService;</code></pre></div><p>Now the desired implementation is explicit.</p><p></p><h4>Option 3 &#8212; Inject all implementations</h4><p>Sometimes we actually want every implementation.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;java&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-java">@Autowired
private List&lt;PaymentService&gt; paymentServices;</code></pre></div><p>Spring injects:</p><pre><code><code>[
  StripePaymentService,
  PaypalPaymentService
]</code></code></pre><p>This is commonly used for:</p><ul><li><p>Notification channels</p></li><li><p>Authentication strategies</p></li><li><p>Rule engines</p></li><li><p>Plugin architectures</p></li></ul><p><strong>&#187; <a href="https://javabulletin.substack.com/p/pro-quizzes">Checkout more quizzes</a></strong><a href="https://javabulletin.substack.com/p/pro-quizzes"> </a><br></p><p></p>]]></content:encoded></item><item><title><![CDATA[Engineering With Java: Digest #93]]></title><description><![CDATA[Fresh Java reads, so your backlog stays stale. &#128516;]]></description><link>https://javabulletin.substack.com/p/engineering-with-java-digest-93</link><guid isPermaLink="false">https://javabulletin.substack.com/p/engineering-with-java-digest-93</guid><dc:creator><![CDATA[Suraj Mishra]]></dc:creator><pubDate>Sun, 05 Jul 2026 21:30:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1Wig!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>&#128075; </strong><span>Java Devs! Welcome to this week&#8217;s addition! I hope you&#8217;re all doing great.</span></p><p>This week, we cover essential insights on:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1Wig!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 424w, https://substackcdn.com/image/fetch/$s_!1Wig!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 848w, https://substackcdn.com/image/fetch/$s_!1Wig!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 1272w, https://substackcdn.com/image/fetch/$s_!1Wig!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1Wig!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png" width="1280" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:191764,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/205292632?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1Wig!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 424w, https://substackcdn.com/image/fetch/$s_!1Wig!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 848w, https://substackcdn.com/image/fetch/$s_!1Wig!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 1272w, https://substackcdn.com/image/fetch/$s_!1Wig!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006fb26c-3d8e-4896-9c45-4d5f7eacc542_1280x794.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>One Quick Announcement:</strong></p><p><span>We are now planning to actively post on Youtube, mainly solving real world interview questions. </span><a href="https://www.youtube.com/@ewj25"><mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">So consider subscribing</mark></a></p><p><strong><a href="https://www.youtube.com/@ewj25">Youtube Channel</a></strong></p><p>Also, consider sharing your interview questions to me through DM or email (surajmishra150893@gmail.com). I will try to cover them.</p><div><hr></div><p><span>&#128226; Get actionable Java and Spring Boot insights every week, including practical code tips and real-world, use-case-based interview questions, to help you level up your backend skills&#8212;</span><strong>join 7800+ subscribers</strong><span> for hand-crafted, no-fluff content.</span></p><p><strong>First 100 paid subscribers will get the annual membership at $50/year </strong><em><strong>forever </strong></em><strong>that is ~ $4/mo ( 93 already converted to paid, 7 remaining)</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong><a href="https://javabulletin.substack.com/p/java-interview-questions">So far we have covered 68 real world based interview questions and will add up to 100 by end of this year.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png" width="1456" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:234147,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/194613394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!up1m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 424w, https://substackcdn.com/image/fetch/$s_!up1m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 848w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1272w, https://substackcdn.com/image/fetch/$s_!up1m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9d797b-6559-4126-a492-ece7e8cc4011_2046x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Testimonials</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://javabulletin.substack.com/subscribe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png" width="1326" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132086,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://javabulletin.substack.com/subscribe&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://javabulletin.substack.com/i/195446735?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ysvT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 424w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 848w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1272w, https://substackcdn.com/image/fetch/$s_!ysvT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa41cba88-3cb9-4bda-9420-7fba2d38e1eb_1326x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1 style="text-align: center;"><strong><mark data-color="rgb(255, 242, 204)" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Articles Of The Week</mark></strong></h1><p><strong><a href="https://www.infoq.com/articles/tradeoffs-event-driven-design/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">The Hidden Tradeoffs of Event-Driven Design</a> : </strong>This article shares hard-earned lessons from building large-scale event-driven systems, showing that the biggest production challenges often come from state management, consumer bottlenecks, and cache consistency, not Kafka itself. It explains practical trade-offs between local caches, Redis, synchronous communication, and event streams, arguing that successful architectures combine asynchronous and synchronous patterns rather than relying on event-driven design everywhere.</p><p><strong><a href="https://www.infoq.com/news/2026/07/hardwood-java-parquet/?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=Java">Hardwood Promises High-Speed JVM Apache Parquet Processing</a> : </strong>Hardwood is a new open-source Java library that reimagines Apache Parquet reading with near-zero mandatory dependencies and a multi-threaded architecture, delivering faster performance than the traditional <code>parquet-java</code> implementation. Designed by Gunnar Morling, it provides both row- and column-oriented APIs while avoiding the heavy Hadoop dependency tree, making it ideal for modern JVM data processing workloads.</p><p><strong><a href="https://donraab.medium.com/save-memory-in-java-by-making-memory-efficiency-your-top-priority-32fe9443eb8d?source=rss-df39b86e9f04------2">Save Memory in Java by Making Memory Efficiency Your Top Priority</a> :</strong> This article argues that memory efficiency should be a first-class design goal in Java, as reducing object overhead, choosing the right data structures, and optimizing object layouts often delivers bigger gains than GC tuning. Drawing on real-world experience and Eclipse Collections, Don Raab demonstrates how measuring memory with tools like JOL and making small, deliberate optimizations can dramatically improve scalability without sacrificing performance.</p><p><strong><a href="https://dzone.com/articles/flink-dlq-patterns">Dead Letter Queue Patterns in Apache Flink</a> : </strong>This article explains why Dead Letter Queues (DLQs) are essential in Apache Flink to prevent a single "poison message" from repeatedly crashing a streaming job. It recommends production-ready patterns such as side outputs, exponential backoff retries, tiered DLQs, durable Kafka/S3 sinks, monitoring, and dedicated replay pipelines to ensure bad records are isolated, debuggable, and safely reprocessable.</p><p><strong><a href="https://medium.com/@AlexanderObregon/resilience4j-circuit-breakers-in-spring-boot-that-actually-trip-ce7a0b36fe60?source=rss-4f9731d3205------2">Resilience4j Circuit Breakers in Spring Boot That Actually Trip</a> : </strong>This article explains that Resilience4j circuit breakers only trip after collecting enough failure data&#8212;they don't block traffic on the first error. It walks through how sliding windows, minimum call thresholds, failure/slow-call rates, and the <code>CLOSED &#8594; OPEN &#8594; HALF_OPEN</code> state transitions determine when requests are rejected, helping developers understand why breakers sometimes appear to "never trip."</p><p><strong><a href="https://piotrminkowski.com/2026/07/02/continuous-development-with-claude-code-on-github/">Continuous Development with Claude Code on GitHub</a> : </strong>This article demonstrates how to turn Claude Code into a continuous AI contributor on GitHub by integrating the Claude GitHub App with GitHub Actions, allowing it to implement issues, review pull requests, and submit tested code automatically. Using a Spring Boot sample project, it shows how AI-driven development workflows can automate much of the feature implementation and review cycle while keeping developers in control through GitHub's existing collaboration model.</p><p><strong><a href="https://foojay.io/today/building-an-ai-powered-operations-assistant-with-spring-ai-and-mongodb-atlas-part-3-stateful-workflows-and-human-in-the-loop/">Building an AI-Powered Operations Assistant with Spring AI and MongoDB Atlas</a> : </strong>This article completes the AI Operations Assistant series by adding stateful workflows, checkpointing, and human-in-the-loop approvals, enabling multi-step investigations to pause, resume, and survive application restarts. Built with Spring AI and MongoDB Atlas, it combines tool calling, persistent workflow state, audit trails, and operator approval to create production-ready AI agents that are reliable, transparent, and safe for operational tasks.</p><p><strong><a href="https://piotrminkowski.com/2026/06/23/quarkus-rest-with-apache-camel-and-keycloak/">Quarkus REST with Apache Camel and Keycloak</a> :  </strong>This article demonstrates how to build a secure Quarkus REST API using Apache Camel's REST DSL, Hibernate Panache, and Keycloak for OIDC authentication, all with minimal configuration. It also highlights Quarkus Dev Services, automatic Keycloak provisioning, and the integration of Swagger/OpenAPI with Camel routes, making it easy to develop, test, and document secured REST services.</p><p></p><h1 style="text-align: center;"><strong><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Videos Of The Week</mark></strong></h1><p><strong><a href="https://www.youtube.com/watch?v=Of0fvtIRwzY">A Decade of Redefining Java Performance</a> : </strong>This talk traces the evolution of Java garbage collection, showing how ZGC transformed Java from suffering long GC pauses to delivering sub-millisecond pause times suitable for low-latency applications. It explains ZGC&#8217;s concurrent, generational design, its scalability to terabyte-sized heaps, and recent improvements in JDK 21&#8211;26 that make it easier to use, more efficient, and ready for future innovations like automatic heap sizing.</p><p><strong><a href="https://www.youtube.com/watch?v=KpCz6UtViEo">SIMD Vectors in the HotSpot JVM</a> : </strong>Java is steadily improving its ability to leverage modern CPUs through auto-vectorization and the Vector API, enabling multiple data elements to be processed with a single instruction for significant performance gains. This talk demonstrates how these technologies accelerate common algorithms like reductions and dot products while keeping Java portable across hardware. It also highlights ongoing OpenJDK work to expand automatic optimizations and mature the Vector API for AI, scientific computing, cryptography, and other compute-intensive workloads.</p><p><strong><a href="https://www.youtube.com/watch?v=jcYKGVCVYWU">The Spring AI Ecosystem in 2026: From Foundations to Agents</a> : </strong>Spring AI is evolving from simple prompt pipelines into a complete framework for building AI applications with memory, RAG, guardrails, structured outputs, tool calling, and agentic workflows using a pluggable Advisor pattern. It also embraces Model Context Protocol (MCP), making it easier for LLMs to securely interact with external systems, APIs, databases, and enterprise tools through standardized connectors. Together, Spring AI and MCP provide the foundation for building observable, extensible, production-ready AI agents in the Java ecosystem.</p><p><strong><a href="https://www.youtube.com/watch?v=lMbgBYlUtfc">The New @RedisListener Simplifies Everything</a> : </strong>Spring Boot 4.1 introduces first-class Redis Pub/Sub listeners with <code>@RedisListener</code>, eliminating the boilerplate of manually configuring <code>RedisMessageListenerContainer</code> and <code>MessageListenerAdapter</code>. Developers can now consume typed JSON payloads directly, making Redis messaging feel as simple and consistent as <code>@KafkaListener</code> or <code>@RabbitListener</code>. This significantly reduces setup code while improving readability and developer experience.</p><p></p><h1 style="text-align: center;"><strong><mark data-color="rgb(208, 224, 227)" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">In-house Blogs</mark></strong></h1><p style="text-align: center;"></p><ul><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-real">Spring Boot Interview Question &#8212; Real-Time Seat Map Updates</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/spring-boot-interview-question-kafka">Spring Boot Interview Question - Kafka Consumer Became a Zombie</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/java-bug-fix-interview-question-payment">Java Bug Fix Interview Question &#8212; Payment Retry Bug</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/java-interview-question-find-minimum">Java Interview Question - Find Minimum Version in Rotated Release History</a></strong></p></li><li><p><strong><a href="https://javabulletin.substack.com/p/java-interview-question-interval">Java Interview Question - Interval Aggregation Service Bug</a></strong></p></li></ul><p></p><p>Thats all for this week friends! Thanks for reading this far. If you liked it please share with your network.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://javabulletin.substack.com/p/engineering-with-java-digest-81?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&amp;token=eyJ1c2VyX2lkIjozNTMxNzQ1LCJwb3N0X2lkIjoxOTA5NzQxOTAsImlhdCI6MTc3NTM0NTM1MiwiZXhwIjoxNzc3OTM3MzUyLCJpc3MiOiJwdWItMTE5MjkwMiIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.6OHX5ipQFoHJcF4RZ4mZJGVpJvSFVlKpxkO588WdhDc"><span>Share</span></a></p><blockquote><p><strong><a href="https://javabulletin.substack.com/subscribe?">Before you leave, don&#8217;t forget to unlock all the real world use case based interview questions , just at $4/mo (with annual subscription)</a><span>.</span></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://javabulletin.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://javabulletin.substack.com/subscribe?"><span>Subscribe now</span></a></p></blockquote><p><span>Happy Coding &#128640;</span><br><span>Suraj</span></p><p><strong><a href="https://javabulletin.substack.com/subscribe">Subscribe</a><span> | </span><a href="https://javabulletin.substack.com/p/sponsor-java-bulletin">Sponsor us</a><span> | </span><a href="https://www.linkedin.com/in/suraj-mishra-16b515a4/">LinkedIn</a><span> | </span><a href="https://x.com/immishrasuraj">Twitter</a><span> | </span><a href="https://www.youtube.com/@ewj25">Youtube</a></strong></p>]]></content:encoded></item></channel></rss>