Running migrations at the same time as using the data

Say I have multiple Java processes with connections to a database, one of these is running liquibase migrations and another is persisting data at the same time. What happens in this situation? Will the liquibase transaction fail, roll back and then re-apply?

It depends on how your DBMS handles concurrency and transactions. Liquibase connects as a normal application to the database, so it’s no different than any other application. Likely that the 1st application will block the 2nd application. The 2nd application will wait until the 1st is complete.