H2 database for persisting data: We are going to use H2's memory instance, however, you can also use a file-based instance.
Hibernate Object Relational Mapping (ORM): For database object mapping.
Flyway for database migration: This helps maintain the database and maintains a database changes history that allows rollbacks, version upgrades, and so on.