Home » Archives for Sebastian Daschner » Page 3

Author Archives: Sebastian Daschner

Sebastian Daschner is a self-employed Java consultant and trainer. He is the author of the book 'Architecting Modern Java EE Applications'. Sebastian is a Java Champion, Oracle Developer Champion and JavaOne Rockstar.

Database migrations in Kubernetes applications with Flyway

I’ve recorded a video how to migrate databases for applications that are deployed in a managed Kubernetes environment using Flyway and init containers. In order to achieve zero-downtime deployments, we need to make sure that our persistence concept supports N-1 compatibility, which requires us to be able to migrate our database schemas, ideally from reproducible scripts stored in version control. ...

Read More »

Converting JAX-RS parameters with ParamConverters


If you want JAX-RS to automatically convert parameters such as query params, path params, or others, you need to create a ParamConverter. Primitive types, strings, and types who define certain conversion methods, such as a valueOf(String) method, are automatically converted. Here’s how to define a converter for LocalDates. One gotcha I ran into a few times — besides the fact ...

Read More »

Migrating Neo4j graph schemas in Kubernetes

When running enterprise applications with zero-downtime, we need to be able to perform database schema migrations without disrupting active users. This is important not just for relational databases, but also for graph databases such as Neo4J, which don’t enforce a schema on write. However, it still makes sense to refactor your graph and to keep your graph data model in ...

Read More »

How to restore a Neo4J backup on managed Kubernetes

In the following video I’ll explain how to restore backups of Neo4J instances to a fresh instance that runs in a managed Kubernetes environment. The backup contents will be taken from a persistent volume to which we previously wrote the backup. In this previous post you can see how to take backups in the first place. Try it yourself Again, ...

Read More »

How to backup Neo4J on managed Kubernetes

In the following video I’ll explain how to take full and incremental backups of Neo4J instances that run in a managed Kubernetes environment. We’ll use additional pods to take remote backups and store the backup data on persistent volumes which are provided by our managed environment. In case you’re wondering how to deploy Neo4J to managed Kubernetes, have a look ...

Read More »

Deploying a Neo4J single core on managed Kubernetes

Besides running a database cluster, it might already be sufficient for your project to deploy a single instance. In the following video I’ll explain how to deploy a single core Neo4J instance using Helm to a managed Kubernetes cluster. I’ll be using a forked and modified version of the official Helm chart, which you can find in this GitHub repository ...

Read More »

Deploying a Neo4J cluster on managed Kubernetes

I’ve created some videos on how to deploy both a Neo4J cluster and standalone instance to a manged Kubernetes cluster. When running a database or any service with persistence concern, we need to take more considerations into account, most importantly how to implement persistent storage as well as automated processes such as backups. In the following video I’ll explain how ...

Read More »

Neo4J OGM with Quarkus

In the following video I show an example Quarkus application that uses a Neo4J database and Neo4J OGM. Have a look at the example project on GitHub. I’ve created an example domain for coffee beans with certain flavor profiles that we can query and match. The red nodes are coffee beans that are from a certain country and taste like ...

Read More »

Using IdeaVim with IntelliJ

I’ve been a VIM user for a few years and I’m also using the IdeaVim plugin in IntelliJ. The following configuration and features helped me a lot. You can configure the same keymappings that you have in your regular VIM in the ~/.ideavimrc file.Setting idearefactormode to keep makes the behavior of refactorings such as renamings more deterministic.In a dialog hitting ...

Read More »