Spring Data R2DBC Spring Data R2DBC provides repository support for the Reactive Relational Database Connectivity (R2DBC) API. JPA works with JDBC. JDBC is fully blocking API. Maven Dependencies <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-r2dbc</artifactId> </dependency> In terms of databases, Spring Data R2DBC requires a driver to abstract common SQL functionality over vendor-specific flavours. Support for the databases can be checked here (you need to add chosen driver as Maven Dependency). Initializing Database You can initialize Database with 🟢 DatabaseConfig: @Configuration public class DatabaseConfig { @Value("classpath:/schema.sql") Resource resource; (1) @Bean ConnectionFactoryInitializer connectionFactoryInitializer(ConnectionFactory connectionFactory) { ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer(); (2) initializer.setConnectionFactory(connectionFactory); (3) initializer.setDatabasePopulator(new ResourceDatabasePopulator(resource)); (4) return initializer; } } 1 Database SQL script which will be used to create schema. The schema.sql is located under src/main/resources 2 🟢 ConnectionFactoryInitializer is used to set up a database during initialization and clean up a database during destruction. 3 ⚪ ConnectionFactory is an R2DBC factory for creating connections and entry point for a driver. 4 🟢 ResourceDatabasePopulator populates, initializes, or cleans up a database using SQL scripts defined in external ⚪ Resource.