<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mike LaSpina on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/mike-laspina/</link><description>Articles written by Mike LaSpina on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 16 Apr 2026 20:25:28 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/mike-laspina/index.xml" rel="self" type="application/rss+xml"/><item><title>CQRS in Java: Separating Reads and Writes Cleanly</title><link>https://foojayio.github.io/website/today/cqrs-in-java-separating-reads-and-writes-cleanly/</link><pubDate>Thu, 16 Apr 2026 20:25:28 +0000</pubDate><guid>https://foojayio.github.io/website/today/cqrs-in-java-separating-reads-and-writes-cleanly/</guid><description>&lt;h3 id="h3-0-what-you-ll-learn"&gt;What you&amp;rsquo;ll learn&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;How the MongoDB Spring repository can be used to abstract MongoDB operations&lt;/li&gt;
&lt;li&gt;Separating Reads and Writes in your application&lt;/li&gt;
&lt;li&gt;How separating these can make schema design changes easier&lt;/li&gt;
&lt;li&gt;Why you should avoid save() and saveAll() functions in Spring&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Command Query Responsibility Segregation (CQRS) pattern is a design method that segregates data access into separate services for reading and writing data. This allows a higher level of maintainability in your applications, especially if the schema or requirements change frequently. This pattern was originally developed with separate read and write sources in mind. However, implementing CQRS for a single data source is an effective way to abstract data from the application and make maintenance easier in the future. In this blog, we will use Spring Boot with MongoDB in order to create a CQRS pattern-based application.&lt;/p&gt;</description></item><item><title>Data Enrichment in MongoDB</title><link>https://foojayio.github.io/website/today/data-enrichment-in-mongodb/</link><pubDate>Tue, 03 Mar 2026 16:10:36 +0000</pubDate><guid>https://foojayio.github.io/website/today/data-enrichment-in-mongodb/</guid><description>&lt;p&gt;In a recent design review, a customer was enriching new data as it came in. As the enrichment process was fairly complex, they ran into some issues with concurrency. To solve this, they decided that data should go into a staging collection rather than the main collection that held the data. This did nothing to help with concurrency issues and actually created more work on the database side of things when enrichment was complete.&lt;/p&gt;</description></item><item><title>Building Java Microservices with the Repository Pattern</title><link>https://foojayio.github.io/website/today/building-java-microservices-with-the-repository-pattern/</link><pubDate>Thu, 11 Dec 2025 23:19:10 +0000</pubDate><guid>https://foojayio.github.io/website/today/building-java-microservices-with-the-repository-pattern/</guid><description>&lt;h3 id="h3-0-what-you-ll-learn"&gt;What you&amp;rsquo;ll learn&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;How the MongoDB Spring repository can be used to abstract MongoDB operations&lt;/li&gt;
&lt;li&gt;Ensuring data access is separate from core application logic&lt;/li&gt;
&lt;li&gt;Why you should avoid save() and saveAll() functions in Spring&lt;/li&gt;
&lt;li&gt;Why schema and index design still matters in this case&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The repository pattern is a design method that allows for abstraction between business logic and the data of an application. This allows for retrieving and saving/updating objects without exposing the technical details of how that data is stored in the main application. In this blog, we will use Spring Boot with MongoDB in order to create a repository pattern-based application.&lt;/p&gt;</description></item></channel></rss>