Asynchronous and non-blocking programming allows us to make the most out of the available hardware, thus increasing density of deployment and reducing costs and waste of resources. The benefits are prominent in Microservices Architecture when combining different sources of data transiting over the network. In their toolbox, many Java developers are equipped with reactive HTTP clients, but is there a point without the same for SQL?
In this presentation, we will explore a few solutions for non-blocking database access. We will start with wrapping a JDBC driver, then use a Vert.x Reactive SQL Client. Eventually, we will introduce the Hibernate Reactive ORM. Based on each of their advantages and limitations, you will be able to make your choices between compatibility or efficiency, flexibility or productivity.