<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Neo4J on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/category/neo4j/</link><description>Recent content in Neo4J on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 22 Apr 2025 08:07:51 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/category/neo4j/index.xml" rel="self" type="application/rss+xml"/><item><title>Breaktime Tech Talks (Ep39): Why embedding models should match + Advice for starting a blog</title><link>https://foojayio.github.io/website/today/breaktime-tech-talks-ep39-why-embedding-models-should-match-advice-for-starting-a-blog/</link><pubDate>Wed, 16 Apr 2025 05:35:04 +0000</pubDate><guid>https://foojayio.github.io/website/today/breaktime-tech-talks-ep39-why-embedding-models-should-match-advice-for-starting-a-blog/</guid><description>&lt;p&gt;This is episode 39 of the &lt;a href="https://www.youtube.com/playlist?list=PLzZ7iUdr2mwS6qexoz9dsI0NfnU614p1w" target="_blank" rel="noopener noreferrer"&gt;Breaktime Tech Talks podcast&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m at a conference this week presenting on a variety of different topics, but I stopped for just a few minutes to document some recent learnings while I was preparing the code projects for this week&amp;rsquo;s sessions.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll chat about a hands-on experience that helped me understand why embedding models for vectors and search should actually match. Then I came across an article with advice for creating a blog that outlines a lot of the practices I myself follow when I write tech blogs. I hope you enjoy it as well.&lt;/p&gt;</description></item><item><title>Breaktime Tech Talks (Ep37): Vector Database Frustration + Microsoft LazyGraphRAG</title><link>https://foojayio.github.io/website/today/breaktime-tech-talks-ep37-vector-database-frustration-microsoft-lazygraphrag/</link><pubDate>Wed, 19 Mar 2025 12:54:36 +0000</pubDate><guid>https://foojayio.github.io/website/today/breaktime-tech-talks-ep37-vector-database-frustration-microsoft-lazygraphrag/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is episode 37 of the &lt;a href="https://www.youtube.com/playlist?list=PLzZ7iUdr2mwS6qexoz9dsI0NfnU614p1w" target="_blank" rel="noopener noreferrer"&gt;Breaktime Tech Talks&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/hv-FtjIHg_I?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;You are listening to the Breaktime Tech Talks podcast, a bite-sized tech podcast for busy developers, where we&amp;rsquo;ll briefly cover technical topics, new snippets, and more in short time blocks. I&amp;rsquo;m your host, Jennifer Reif, an avid developer and problem solver with special interest in data, learning, and all things technology.&lt;/p&gt;</description></item><item><title>Spring Data Neo4j: How to update an entity</title><link>https://foojayio.github.io/website/today/spring-data-neo4j-how-to-update-an-entity/</link><pubDate>Wed, 05 Feb 2025 18:58:12 +0000</pubDate><guid>https://foojayio.github.io/website/today/spring-data-neo4j-how-to-update-an-entity/</guid><description>&lt;p&gt;&lt;strong&gt;After working on a new &lt;a href="https://graphacademy.neo4j.com/courses/app-spring-data/" target="_blank" rel="noopener noreferrer"&gt;online Spring Data Neo4j course&lt;/a&gt;
, I learned a couple more things about updating an entity.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The course required a different set of scenarios than outlined in my &lt;a href="https://jmhreif.com/blog/2023/sdn-cypher-update-entity/" target="_blank" rel="noopener noreferrer"&gt;previous SDN update blog post&lt;/a&gt;
, so I wanted to cover those scenarios, as well.&lt;/p&gt;
&lt;h2 id="_spring_save_method"&gt;Spring save() method&lt;/h2&gt;
&lt;p&gt;First up is the out-of-the-box &lt;code&gt;save()&lt;/code&gt; method that is provided by Spring as a default. This method takes an input of the entity object you want to save to the database.&lt;/p&gt;</description></item><item><title>Gear Up for NODES 2024: What to Know</title><link>https://foojayio.github.io/website/today/gear-up-for-nodes-2024-what-to-know/</link><pubDate>Thu, 03 Oct 2024 17:00:46 +0000</pubDate><guid>https://foojayio.github.io/website/today/gear-up-for-nodes-2024-what-to-know/</guid><description>&lt;h3 id="h3-0-nodes-is-a-free-virtual-conference-run-by-neo4j-for-developers-data-scientists-and-other-technical-roles-who-want-to-learn-more-about-graph-databases-and-how-they-can-be-used-to-solve-complex-problems-join-us-online-november-7"&gt;NODES is a free, virtual conference run by Neo4j for developers, data scientists, and other technical roles who want to learn more about graph databases and how they can be used to solve complex problems. Join us online November 7!&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;The NODES 2024 conference is approaching fast, and we have a lot of exciting activities, including talks, workshops, and more. Here&amp;rsquo;s what you need to know to get ready for NODES 2024.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Press the Easy Button: Organize a Virtual Conference Schedule with a Graph Database</title><link>https://foojayio.github.io/website/today/press-the-easy-button-organize-a-virtual-conference-schedule-with-a-graph-database/</link><pubDate>Tue, 10 Sep 2024 06:17:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/press-the-easy-button-organize-a-virtual-conference-schedule-with-a-graph-database/</guid><description>&lt;p&gt;&lt;strong&gt;Putting together a conference schedule for NODES 2024 (one of my favorite events of the year) is a massive undertaking, but my colleague and I used technologies and tools at our disposal to make this process a little more efficient and greatly reduce opportunities for mistakes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Every year, Neo4j hosts the virtual event NODES 2024 - a free, technical event spanning global timezones and a variety of graph-related topics. This is one of my favorite events of the year, but it doesn&amp;rsquo;t happen without countless hours of planning and work to make it valuable to the graph community.&lt;/p&gt;</description></item><item><title>How to Run Neo4j on Kubernetes</title><link>https://foojayio.github.io/website/today/how-to-run-neo4j-on-kubernetes/</link><pubDate>Tue, 25 Jun 2024 19:34:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/how-to-run-neo4j-on-kubernetes/</guid><description>&lt;h3 id="h3-0-kubernetes-is-an-open-source-container-orchestration-platform-that-automates-the-deployment-scaling-and-management-of-containerized-applications-in-this-post-we-walk-through-how-to-run-the-neo4j-graph-database-on-kubernetes"&gt;Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. In this post, we walk through how to run the Neo4j graph database on Kubernetes.&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;For an upcoming event, I was asked to give a demo of how to run Neo4j on Kubernetes. I had very little experience with Kubernetes, so I decided to document my journey for later reference.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_what_is_kubernetes"&gt;What is Kubernetes?&lt;/h2&gt;
&lt;p&gt;Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It was originally developed by Google and is now maintained by the Cloud Native Computing Foundation.&lt;/p&gt;</description></item><item><title>How to Submit a Technical Presentation</title><link>https://foojayio.github.io/website/today/nodes-2024-how-to-submit-a-technical-presentation/</link><pubDate>Thu, 16 May 2024 09:06:05 +0000</pubDate><guid>https://foojayio.github.io/website/today/nodes-2024-how-to-submit-a-technical-presentation/</guid><description>&lt;p&gt;&lt;strong&gt;There is no shortage of technical events such as conferences, meetups, trainings, hackathons, and so on. These events are a great way to learn new things, connect with people, and share knowledge with others. One of the most valuable and exciting ways to share knowledge is by giving a technical presentation.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Today, we will look at how to submit a technical presentation for an event and get some personal recommendations from me, as well. Though we will specifically gear the information for the NODES 2024 call for proposals, nearly everything discussed can be applied to other technical events and speaking engagements.&lt;/p&gt;</description></item><item><title>Spring AI: How to Write GenAI Applications with Java</title><link>https://foojayio.github.io/website/today/spring-ai-how-to-write-genai-applications-with-java/</link><pubDate>Thu, 09 May 2024 18:46:55 +0000</pubDate><guid>https://foojayio.github.io/website/today/spring-ai-how-to-write-genai-applications-with-java/</guid><description>&lt;p&gt;Generative AI (GenAI) is currently a hot topic in the tech world. It&amp;rsquo;s a subset of artificial intelligence that focuses on creating new content, such as text, images, or music. One popular type of GenAI component is the Large Language Model (LLM), which can generate human-like text based on a prompt.&lt;/p&gt;
&lt;p&gt;Retrieval-Augmented Generation (RAG) is a technique that enhances the accuracy and reliability of generative AI models by grounding them in external knowledge sources. While most GenAI applications and related content are centered around Python and its ecosystem, what if you want to write a GenAI application in Java?&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 10: Service Discovery with Eureka</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-10-service-discovery-with-eureka/</link><pubDate>Thu, 13 Jul 2023 06:39:06 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-10-service-discovery-with-eureka/</guid><description>&lt;p&gt;Gaining complexity in a microservices system certainly isn&amp;rsquo;t for the faint of heart (though neither is complexity in monoliths!).&lt;/p&gt;
&lt;p&gt;When there are many services that need to communicate with one another, we might need to coordinate multiple services communicating with multiple other services.&lt;/p&gt;
&lt;p&gt;We also might code for varying environments such as local, development server, or the cloud.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How do services know where to find one another?&lt;/li&gt;
&lt;li&gt;How can we avoid problems when a service is unavailable?&lt;/li&gt;
&lt;li&gt;How do we handle requests when we scale up or down certain parts of our system?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where something like Spring Cloud Netflix Eureka comes into play.&lt;/p&gt;</description></item><item><title>Time Machine: A Look-Back at Java Sessions from NODES 2022</title><link>https://foojayio.github.io/website/today/time-machine-a-look-back-at-java-sessions-from-nodes-2022/</link><pubDate>Wed, 28 Jun 2023 07:53:07 +0000</pubDate><guid>https://foojayio.github.io/website/today/time-machine-a-look-back-at-java-sessions-from-nodes-2022/</guid><description>&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/time-machine-a-look-back-at-java-sessions-from-nodes-2022/nodes2023-java-scaled.jpg" alt="Base Photo by Compare Fibre on Unsplash" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;Figure 1. Base Photo by Compare Fibre on Unsplash&lt;/p&gt;
&lt;p&gt;As we prepare for NODES 2023, I wanted to pull out the time machine and review the Java sessions from &lt;a href="https://neo4j.com/video/nodes-2022/" target="_blank" rel="noopener noreferrer"&gt;NODES 2022&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;I will be submitting some abstracts to the &lt;a href="https://sessionize.com/neo4j-nodes-2023" target="_blank" rel="noopener noreferrer"&gt;2023 Call for Proposal&lt;/a&gt;
 here soon, likely in the Java category, so I thought looking at last year&amp;rsquo;s sessions might give me some inspiration or ideas for gaps or continuations I might want to explore.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 9: Docker compose all the things</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-9-docker-compose-all-the-things/</link><pubDate>Sun, 26 Feb 2023 10:02:15 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-9-docker-compose-all-the-things/</guid><description>&lt;p&gt;Our microservices project contains quite a few pieces now.&lt;/p&gt;
&lt;p&gt;We have two databases, three API services, a user-view service for books, and a service to host our configuration.&lt;/p&gt;
&lt;p&gt;With so many pieces to manage, it would be nice to have something that orchestrates the individual services into a system, such as Docker Compose.&lt;/p&gt;
&lt;p&gt;Back in our &lt;a href="https://foojayio.github.io/website/today/journeys-in-java-level-5-building-an-empire-of-microservices/"&gt;Level 5&lt;/a&gt;
 rendition, we did exactly this for our smaller version of the project.&lt;/p&gt;
&lt;p&gt;Now that we have expanded our services, we need to add those new pieces into the existing Docker Compose management umbrella.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 8: Add MongoDB to Spring Cloud Config</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-8-add-mongodb-to-spring-cloud-config/</link><pubDate>Thu, 09 Feb 2023 16:56:28 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-8-add-mongodb-to-spring-cloud-config/</guid><description>&lt;p&gt;In &lt;a href="https://foojayio.github.io/website/today/journeys-in-java-level-7-externalize-microservice-configuration/"&gt;our last article&lt;/a&gt;
, we used Spring Cloud Config to provide database credentials to a microservice application connecting to a cloud-hosted Neo4j database. This post will backport this concept to our existing MongoDB database instance and its related microservices.&lt;/p&gt;
&lt;p&gt;We will add our MongoDB credentials to the config server, so that it will be the central place for both our Neo4j and MongoDB database access. However, each service only has access to the credentials that it needs to operate, which provides some level of security through &amp;ldquo;separation of concerns&amp;rdquo; (versus universal access).&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 7: Externalize Microservice Configuration</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-7-externalize-microservice-configuration/</link><pubDate>Mon, 30 Jan 2023 15:43:16 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-7-externalize-microservice-configuration/</guid><description>&lt;p&gt;Our decided next step for this project takes us in a new direction by adding externalized configuration for our applications.&lt;/p&gt;
&lt;p&gt;We already saw how to do something similar with &lt;a href="https://jmhreif.com/blog/microservices-level5/" target="_blank" rel="noopener noreferrer"&gt;MongoDB database credentials in Docker Compose&lt;/a&gt;
 to access a local database container, but what do we do when the database is hosted on public cloud or contains sensitive data?&lt;/p&gt;
&lt;p&gt;We probably don&amp;rsquo;t want to publish our credentials anywhere or even prevent accidental publishing.&lt;/p&gt;</description></item><item><title>Faster Integration Tests with Reusable Testcontainers</title><link>https://foojayio.github.io/website/today/faster-integration-tests-with-reusable-testcontainers/</link><pubDate>Wed, 17 Aug 2022 11:05:05 +0000</pubDate><guid>https://foojayio.github.io/website/today/faster-integration-tests-with-reusable-testcontainers/</guid><description>&lt;p&gt;In my job, I often need integration tests against a &lt;a href="https://neo4j.com" target="_blank" rel="noopener noreferrer"&gt;Neo4j&lt;/a&gt;
 database. My software is written in Java, and so is Neo4j. Neo4j is embeddable, too. So, in theory, I could just depend on the embedded version, open a connection, test my stuff and call it a day. It would not be a different engine, it would be - at least from a query-engine and planer perspective - the same thing, in contrast to using an embedded SQL database as a drop-in for PostgresQL for example.&lt;/p&gt;</description></item><item><title>Native GraphQL API with Neo4j AuraDB on Heroku</title><link>https://foojayio.github.io/website/today/native-graphql-api-with-neo4j-auradb-on-heroku/</link><pubDate>Mon, 08 Aug 2022 07:29:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/native-graphql-api-with-neo4j-auradb-on-heroku/</guid><description>&lt;p&gt;In my first article on Foojay, I would like to present one of many possible approaches to create a GraphQL API. I work at &lt;a href="https://neo4j.com/" target="_blank" rel="noopener noreferrer"&gt;Neo4j&lt;/a&gt;
, so it should not be a big suprise that I will use the Graph database with the same name as a backend for the application.&lt;/p&gt;
&lt;p&gt;In this post I will cover a couple of things and I&amp;rsquo;ll start with a simple use case. Conceptually we will look at the &amp;ldquo;Schema-First&amp;rdquo; vs &amp;ldquo;Object-First&amp;rdquo; discussions and why - at least in my opinion - GraphQL can be seen much more like an object mapping concept than a query language itself. You will learn that while Neo4j is a Graph database, it does not have a built-in GraphQL layer. It does however a great query language called &lt;a href="https://neo4j.com/docs/cypher-manual/current/" target="_blank" rel="noopener noreferrer"&gt;&amp;ldquo;Cypher&amp;rdquo;&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 6: Build a Neo4j Microservice</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-6-build-a-neo4j-microservice/</link><pubDate>Wed, 13 Jul 2022 15:13:43 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-6-build-a-neo4j-microservice/</guid><description>&lt;p&gt;For our next adventure in Java microservices, we want to expand our system for book review data.&lt;/p&gt;
&lt;p&gt;While books and authors are well-suited for a document database such as MongoDB, once you add reviews to the mix, the importance of the relationships makes this project better suited for a graph database.&lt;/p&gt;
&lt;p&gt;This way, we can utilize relationships between the different entities to improve analysis based on the structure of the connections.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 5: Building an Empire of Microservices</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-5-building-an-empire-of-microservices/</link><pubDate>Thu, 02 Jun 2022 05:08:28 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-5-building-an-empire-of-microservices/</guid><description>&lt;p&gt;We continue building our microservices system by adding a coordination layer to handle spinning multiple services up and down.&lt;/p&gt;
&lt;p&gt;In previous articles, we grew from two Spring Boot applications to three applications + a database container.&lt;/p&gt;
&lt;p&gt;As we continue to scale and broaden our system, we will need something to coordinate service and ensure consistent communication (avoid human error).&lt;/p&gt;
&lt;p&gt;We will do this through &lt;a href="https://docs.docker.com/compose/" target="_blank" rel="noopener noreferrer"&gt;&lt;code&gt;docker-compose&lt;/code&gt;&lt;/a&gt;
, an orchestration tool that manages containerized applications.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 4: Building an Empire of Microservices</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-4-building-an-empire-of-microservices/</link><pubDate>Wed, 27 Apr 2022 07:22:03 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-4-building-an-empire-of-microservices/</guid><description>&lt;p&gt;This article is the fourth iteration in a series of posts about building microservices in Java.&lt;/p&gt;
&lt;p&gt;The initial post started with a single string message passed between two locally-running applications, and we are gradually adding services and functionality along the way.&lt;/p&gt;
&lt;p&gt;In this level 4 instalment, we will add a new service that will manage book authors. It will call a database containing a data domain of books and retrieve authors and their information. This will entail creating a new, separate service from our previously written service1 and service2.&lt;/p&gt;</description></item><item><title>Fullstack IMDB Clone with a Java Backend using SparkJava and Neo4j</title><link>https://foojayio.github.io/website/today/building-a-fullstack-imdb-clone-with-a-java-backend-using-sparkjava-and-neo4j/</link><pubDate>Wed, 20 Apr 2022 07:11:02 +0000</pubDate><guid>https://foojayio.github.io/website/today/building-a-fullstack-imdb-clone-with-a-java-backend-using-sparkjava-and-neo4j/</guid><description>&lt;p&gt;Our &lt;a href="https://graphacademy.neo4j.com" target="_blank" rel="noopener noreferrer"&gt;GraphAcademy&lt;/a&gt;
 is teaching folks starting out in the graph space the fundamentals of the data model, query language, and graph algorithms.&lt;/p&gt;
&lt;p&gt;And for developers, there are &lt;a href="https://graphacademy.neo4j.com/categories/developer/" target="_blank" rel="noopener noreferrer"&gt;courses for using our drivers&lt;/a&gt;
 and building the backend of a fullstack app in JavaScript, Go, Python, Java, and soon .Net.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/OzxHfAx.png" alt="OzxHfAx" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;The application is an IMDB clone based on the &lt;a href="https://github.com/neo4j-graph-examples/recommendations" target="_blank" rel="noopener noreferrer"&gt;MovieLens recommendation&lt;/a&gt;
 dataset augmented with movie and cast data from &lt;a href="https://themoviedb.org" target="_blank" rel="noopener noreferrer"&gt;themoviedb.org&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;The front-end is written in vue.js and looks pretty slick.&lt;/p&gt;</description></item><item><title>Visualization of Business Function Message Flow with Vaadin and Neo4j</title><link>https://foojayio.github.io/website/today/visualization-of-the-message-flow-between-business-functions-with-vaadin-and-neo4j/</link><pubDate>Wed, 16 Mar 2022 08:21:10 +0000</pubDate><guid>https://foojayio.github.io/website/today/visualization-of-the-message-flow-between-business-functions-with-vaadin-and-neo4j/</guid><description>&lt;h2 id="_the_project"&gt;The Project&lt;/h2&gt;
&lt;p&gt;Analyzing and visualizing the message flow between business functions was the goal of my current project. At first we considered using a UML tool for this job, but we came to the conclusion that it might not be as flexible as we need it to be. Finally I&amp;rsquo;ve got the assigment to create a custom web application.&lt;/p&gt;
&lt;p&gt;Since business functions and messages are related to each other, it made sense to represent them as a graph. That&amp;rsquo;s why I chose &lt;a href="https://neo4j.com/" target="_blank" rel="noopener noreferrer"&gt;Neo4j&lt;/a&gt;
 as the database. Now the question was how to manage and visualize the graph. As I&amp;rsquo;m expierenced with the &lt;a href="https://foojayio.github.io/website/today/vaadin-and-jooq-match-made-in-heaven/"&gt;Vaadin&lt;/a&gt;
 framework I want to use it also in this project.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 3: Building an Empire of Microservices</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-3-building-an-empire-of-microservices/</link><pubDate>Fri, 04 Mar 2022 16:23:40 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-3-building-an-empire-of-microservices/</guid><description>&lt;p&gt;We are still in the beginning stages of building microservices with Java, but we have already seen how to send and receive communications between two Spring Boot applications. In the &lt;a href="https://jmhreif.com/blog/microservices-level1/" target="_blank" rel="noopener noreferrer"&gt;first blog post&lt;/a&gt;
 of this series, our two applications transmitted a message string of &lt;code&gt;&amp;quot;Hello, World!&amp;quot;&lt;/code&gt;. In the &lt;a href="https://jmhreif.com/blog/microservices-level2/" target="_blank" rel="noopener noreferrer"&gt;second blog post&lt;/a&gt;
, we took it one step further by embedding a MongoDB database into our &lt;code&gt;service1&lt;/code&gt;, added a data domain (books) with four pre-populated entries, and transmitted the &lt;code&gt;Book&lt;/code&gt; information between the two applications.&lt;/p&gt;</description></item><item><title>Hand Ground Coffee: Command Line Tools for Java</title><link>https://foojayio.github.io/website/today/hand-ground-coffee-command-line-tools-for-java/</link><pubDate>Mon, 21 Feb 2022 16:04:15 +0000</pubDate><guid>https://foojayio.github.io/website/today/hand-ground-coffee-command-line-tools-for-java/</guid><description>&lt;p&gt;&lt;img src="https://www.dieckmann-aroma-kaffee.de/images/blog/kaffeemuehle.jpg" alt="kaffeemuehle" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;In the book &amp;ldquo;&lt;a href="https://medium.com/97-things" target="_blank" rel="noopener noreferrer"&gt;97 Things every Java Programmer should know&lt;/a&gt;
&amp;rdquo; (I contributed 2 of the 97 tips) there is a chapter about some command line tools in the JDK.&lt;/p&gt;
&lt;p&gt;Since I make heavy use of such helpers myself, I wanted to briefly introduce them in today&amp;rsquo;s article.&lt;/p&gt;
&lt;p&gt;Personally I prefer the command line for my daily work, using the combination of &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;bash&lt;/code&gt; commands etc. makes recurring tasks easier.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 2: Building an Empire of Microservices</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-2-building-an-empire-of-microservices/</link><pubDate>Wed, 16 Feb 2022 15:29:33 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-2-building-an-empire-of-microservices/</guid><description>&lt;p&gt;&lt;strong&gt;Let&amp;rsquo;s dive into the world of microservices find out the complexities, best practices, and troubles. I will share all my learnings, as well!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my &lt;a href="https://jmhreif.com/blog/microservices-level1/" target="_blank" rel="noopener noreferrer"&gt;last blog post&lt;/a&gt;
, we began building microservices in Java with two Spring Boot applications, passing a &amp;ldquo;Hello, World!&amp;rdquo; string from one application to the other. We focused on reduced complexity, minimum previous knowledge, and few components. Next, we can slowly add pieces that simulate microservices projects in the real world.&lt;/p&gt;</description></item><item><title>Journeys in Java, Level 1: Building an Empire of Microservices</title><link>https://foojayio.github.io/website/today/journeys-in-java-level-1-building-an-empire-of-microservices/</link><pubDate>Fri, 28 Jan 2022 14:21:37 +0000</pubDate><guid>https://foojayio.github.io/website/today/journeys-in-java-level-1-building-an-empire-of-microservices/</guid><description>&lt;p&gt;Microservices have been used and deployed in businesses and projects for awhile, and there is plenty of content available for architecting them into a system. For my next project, I want to dive into the world of microservices and begin building my own little virtual empire from different kinds of services to find out the complexities, best practices, power, and trouble that comes with them. I will share all my learnings along the way, as well.&lt;/p&gt;</description></item></channel></rss>