La programmation asynchrone et non-bloquante nous permet de tirer le meilleur parti du matériel dont nous disposons. Grâce à elle, nous pouvons augmenter la densité de déploiement et, de ce fait, diminuer les coûts et le gaspillage des ressources. Les bénéfices sont marquants dans les architectures microservices, lorsque nous combinons différentes sources de données en transit sur le réseau. Dans leur boîte à outils, les développeurs Java disposent de clients HTTP réactifs, mais est-ce utile sans équivalent dans le monde SQL?
Nous allons explorer quelques solutions pour l'accès non-bloquant à une base de données relationnelle. Nous commencerons par JDBC comme contre-exemple, puis nous verrons comment utiliser Vert.x Reactive SQL Client. Enfin nous ferons connaissance avec l'ORM Hibernate Reactive. En tenant compte de leurs avantages et de leurs limitations, vous serez capables de faire vos choix entre compatibilité et efficacité, flexibilité ou productivité.