<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Graeme Robinson on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/graeme-robinson/</link><description>Articles written by Graeme Robinson on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 25 Jun 2026 10:01:00 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/graeme-robinson/index.xml" rel="self" type="application/rss+xml"/><item><title>Aggregation Optimization in MongoDB: Unnecessary Unwinds (Part 2)</title><link>https://foojayio.github.io/website/today/aggregation-optimization-in-mongodb-unnecessary-unwinds-part-2/</link><pubDate>Thu, 25 Jun 2026 10:01:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/aggregation-optimization-in-mongodb-unnecessary-unwinds-part-2/</guid><description>&lt;h2 id="h2-0-and-why-mongodb-might-be-a-better-relational-database-than-you-ever-realized"&gt;And why MongoDB might be a better relational database than you ever realized.&lt;/h2&gt;
&lt;figure class="wp-block-image size-full is-resized"&gt;
 &lt;img fetchpriority="high" decoding="async" width="700" height="307" src="tue11.png" alt="" class="wp-image-124328" style="aspect-ratio:2.2802192518511397;width:840px;height:auto"&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href="https://www.mongodb.com/events/mongodb-schema-design-reviews/?utm_campaign=devrel&amp;amp;utm_source=third-party-content&amp;amp;utm_medium=cta&amp;amp;utm_content=agg-part2-foojay&amp;amp;utm_term=tony.kim" target="_blank" rel="noopener noreferrer"&gt;&lt;em&gt;Design reviews&lt;/em&gt;&lt;/a&gt;
&lt;em&gt;are one-on-one meetings where MongoDB experts deliver advice on data modeling best practices and application design challenges. In this series, we are going to explore common real-life scenarios where design reviews helped developers achieve meaningful success with MongoDB.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This article was written by Graeme Robinson. Find him on&lt;/em&gt; &lt;a href="https://www.linkedin.com/in/graemecrobinson" target="_blank" rel="noopener noreferrer"&gt;&lt;em&gt;LinkedIn&lt;/em&gt;&lt;/a&gt;
&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://foojayio.github.io/website/today/aggregation-optimization-in-mongodb-a-case-study-from-the-field-part-1/"&gt;In Part 1 of this series&lt;/a&gt;
, we described a use case based on a recent design review I conducted with a team at a MongoDB customer. The team in question was new to MongoDB, and the approach they had taken to both modeling their data and then subsequently querying it was very &amp;ldquo;RDBMS-like.&amp;rdquo; As a result, query performance was significantly slower than their SLA called for.&lt;/p&gt;</description></item><item><title>Aggregation Optimization in MongoDB: A Case Study From the Field (Part 1)</title><link>https://foojayio.github.io/website/today/aggregation-optimization-in-mongodb-a-case-study-from-the-field-part-1/</link><pubDate>Tue, 23 Jun 2026 13:17:32 +0000</pubDate><guid>https://foojayio.github.io/website/today/aggregation-optimization-in-mongodb-a-case-study-from-the-field-part-1/</guid><description>&lt;h2 id="h2-0-and-why-mongodb-might-be-a-better-relational-database-than-you-ever-realized"&gt;And why MongoDB might be a better relational database than you ever realized.&lt;/h2&gt;
&lt;figure class="wp-block-image size-full is-resized"&gt;
 &lt;img fetchpriority="high" decoding="async" width="700" height="307" src="tue11.png" alt="" class="wp-image-124328" style="width:840px;height:auto"&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;em&gt;This article was written by Graeme Robinson. Find him on&lt;/em&gt; &lt;a href="https://www.linkedin.com/in/graemecrobinson" target="_blank" rel="noopener noreferrer"&gt;&lt;em&gt;LinkedIn&lt;/em&gt;&lt;/a&gt;
&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.mongodb.com/events/mongodb-schema-design-reviews/?utm_campaign=devrel&amp;amp;utm_source=third-party-content&amp;amp;utm_medium=cta&amp;amp;utm_content=foojay.io&amp;amp;utm_term=tony.kim" target="_blank" rel="noopener noreferrer"&gt;&lt;em&gt;Design reviews&lt;/em&gt;&lt;/a&gt;
&lt;em&gt;are one-on-one meetings where MongoDB experts deliver advice on data modeling best practices and application design challenges. In this series, we are going to explore common real-life scenarios where design reviews helped developers achieve meaningful success with MongoDB.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;br /&gt;
&lt;p&gt;MongoDB is often described as a non-relational database, but whenever we store data in a database, there are relationships within that data. Depending on the type of database we use, though, how we model those relationships may change. As my colleague Rick Houlihan &lt;a href="https://www.youtube.com/watch?v=ThmU8a2eVnw" target="_blank" rel="noopener noreferrer"&gt;has often pointed out&lt;/a&gt;
, there really is no such thing as non-relational data.&lt;/p&gt;</description></item><item><title>Event-Driven Architecture in Java and Kafka</title><link>https://foojayio.github.io/website/today/event-driven-architecture-in-java-and-kafka/</link><pubDate>Tue, 10 Mar 2026 18:35:42 +0000</pubDate><guid>https://foojayio.github.io/website/today/event-driven-architecture-in-java-and-kafka/</guid><description>&lt;p&gt;Reactive Java is well suited to modern streaming, event driven applications. In this article, we&amp;rsquo;ll walk through an example of such an application using Reactive Java with MongoDB. Specifically, we&amp;rsquo;re going to cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why Reactive Java was introduced and how it differs from more traditional Java programming.&lt;/li&gt;
&lt;li&gt;Details of some of the key elements of Reactive Java - &lt;strong&gt;Mono&lt;/strong&gt; , &lt;strong&gt;Flux&lt;/strong&gt; and &lt;strong&gt;flatMap&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A walk through of a sample application, comparing a Reactive version of the code using the Reactive Streams MongoDB driver, with a more traditional version of the code using the synchronous MongoDB driver.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="h2-0-streaming-data-the-air-traffic-control-example"&gt;Streaming Data - The Air Traffic Control Example.&lt;/h2&gt;
&lt;p&gt;As a key part of global initiatives to modernize national airspace systems, many national aviation authorities have introduced mandates requiring most non-military aircraft transmit GPS based location data using a system known as Automatic Dependent Surveillance Broadcast, or &amp;ldquo;ADS-B&amp;rdquo;.&lt;/p&gt;</description></item></channel></rss>