Introduction

My name is Michael Simons and I work as software engineer for Neo4j. Neo4j is the creator of the Graph database with the same name. The main focus of my work is our object mapping framework (Neo4j-OGM) and Spring Data Neo4j. You can find my personal blog under info.michael-simons.eu and myself on Twitter as @rotnroll666.

Thanks to Oleg for the invitation to write on the GraalVM blog, Neo4j and Michael Hunger for supporting this work.

For me the best resources for learning about GraalVM and the ecosystem is actually the reference manual and the community support on Slack. …


With persistent network connections between things, the exceptional case should be expected and not considered to be a surprise. There are dozens of reasons why a remote connection may be closed or be rendered unusable. In such scenarios precautions must be taken so that your logic succeeds eventually.

Introduction

General considerations

Most database management systems (DBMS) these days provides client libraries aka drivers that provide stateful connections to the DBMS. Establishing such connections includes among other things acquiring a transport link, a network session on both the client and the server and of course, user authentication. These days connections are usually encrypted —…


Spring Data Neo4j⚡️RX available as a new core module in JHipster

TL;DR

For the impatient, here’s a complete, running example. You need to havenpm, curl, Docker and Maven installed:

mkdir bootiful-music && cd bootiful-music
npm install -g generator-jhipster
curl -L https://r.neo4j.com/hipster-music -o bootiful-music.jh
jhipster import-jdl bootiful-music.jh
docker-compose -f src/main/docker/neo4j.yml up -d
./mvnw

Access the application at http://localhost:8080.

Welcome screen for the bootiful music application

And now for the story behind it:

Let’s create some good relations.

Back in September 2019, the Spring Data and Object mapping team at Neo4j was asked about their opinion about an integration of our Spring Data module with JHipster.

There was an ongoing issue at that point opened by one of Neo4js long-time partners, Larus in Italy:”Provide First-Class Support…


Three for the price of one: A movie rental story

Denise Jans on unsplash

We are going to address three topics in this post, and they all deal with new features in Neo4j 4.0 and surrounding ecosystem. We have:

  • Multi-database support in Neo4j 4.0 (Enterprise Edition)
  • Reactive Database, drivers and Spring Integration (All Editions)
  • Role-based access controls (RBAC) (Enterprise Edition).

And, as a bonus: Fabric; a new way of querying multiple Neo4j databases together.

In this post, I use the super secret password that we’ll use in testing Neo4j SDN-RX as well. The secret password is for the user neo4j will be secret.

The business domain

Neo4j offers the movie graph starter code sample through its browser…


Last month, we released Neo4j Aura with a big announcement.

I want to share some quick information on how to use Aura from your Java application. Aura provides Neo4j instances, similar to your local setup. You need to use the Neo4j Java Driver which implements the Bolt Protocol.

On Secure Connections

Aura is a secure cloud offering and transport between your hosts and Aura is of course encrypted. Aura uses SSL certificates to identify itself. Those certificates are validated certificates being part of a trust chain. Aura requires the connection to be encrypted.

The Neo4j Java Driver up to version 1.7.5 defaulted to…


Current state and future plans of Neo4j-OGM

There is happening so much right now in the world of graphs.
We have just released our first public milestone release of Neo4j 4.0, the upcoming major version of Neo4j, next week the NODES2019 online conference is happening and the team behind Spring Data Neo4j and Neo4j-OGM wasn’t sleeping as well:

SDN/RX was released as a public beta with a fantastic introduction video by Gerrit Meier.
I personally was super happy to find a blog post written by someone else about SDN/RX title “Reactive programming with Neo4j”. …


How to choose an unique identifier for your database entities

I work for Neo4j, where I’m mainly responsible for maintaining Neo4j-OGM, our object graph mapper, and Spring Data Neo4j, our implementation of the Spring Data repository abstraction. While this current work is mostly graph related, I also worked and I am still working with relational databases, too.

During the last months I noticed that some issues that I encountered in the context of object relational mapping, keeps reappearing in object graph mapping, most of the time with similar consequences.

Today I’m focus on one of those things: Identifiers.

I’ll use the wording database entities when I speak about things that…


In this post I’m presenting different approaches how you can test your Neo4j-based application. As you might know, Neo4j can be accessed from a variety of languages — Go, Python and JavaScript being some of them — this post focuses on Java based applications. I’m an engineer on Neo4j’s Spring Data team, so this is where my focus usually is.

This post has been reviewed in detail by my colleagues Gerrit Meier and Michael Hunger. Thanks a lot!

There are several aspects that needs to be considered while making the decision for or against a certain test setup.

  • Are you…

It has been nearly a year since our last post about the things happening with Neo4j in the “Spring World”. Time did not stand still and the Spring Data Neo4j / Neo4j-OGM Team has been working on improvements and building new features based on the foundations laid out with SDN 5.0 and Neo4j-OGM 3.0 last year.

My name is Michael Simons, I am a Java Champion and the author of the German book about Spring Boot 2 and Spring 5. I joined the Spring Data Neo4j team in July 2018. Together with Gerrit Meier I have been working on the…

Michael Simons

👨‍👩‍👦‍👦👨🏻‍💻🚴🏻 — Father, Husband, Programmer, Cyclist. Author of @springbootbuch, founder of @euregjug. Java champion working on @springdata at @neo4j.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store