This project is part of Eventuate, which is a microservices collaboration platform.
It contains the database schema that Eventuate Tram, Eventuate Local and the Eventuate CDC service use, the code that accesses it, and the database images and Testcontainers containers.
It publishes these artifacts under the group io.eventuate.common.database:
| Artifact | Package | Contents |
|---|---|---|
|
|
|
|
|
Abstract tests for implementations of |
|
|
The Spring configuration of the JDBC modules |
|
|
The R2DBC version of |
|
|
The Spring configuration of |
|
|
An embedded H2 database for tests, whose schema scripts a consumer supplies with |
|
|
The Spring configuration of the in-memory database |
|
|
The schema as Flyway migrations, and |
|
|
|
|
The BOM for these artifacts |
It also builds these images:
-
eventuateio/eventuate-mysql8andeventuateio/eventuate-vanilla-mysql8, frommysql/ -
eventuateio/eventuate-postgresandeventuateio/eventuate-vanilla-postgres, frompostgres/ -
eventuateio/eventuate-mssql, frommssql/
The eventuate- images contain the Eventuate schema and are configured for the CDC. The eventuate-vanilla- images do not contain the schema.
migration/db-id migrates a database to database-generated IDs.
Its version is set in a consumer’s gradle.properties with the property eventuateCommonDatabaseVersion, and the images' tag with eventuateCommonDatabaseImageVersion.
Docker Compose files use EVENTUATE_COMMON_DATABASE_VERSION for the tag of the database images.
These were previously part of eventuate-common, which published them under the group io.eventuate.common:
-
The packages were not under
io.eventuate.common.database. For example,io.eventuate.common.database.jdbcwasio.eventuate.common.jdbc. -
Each artifact other than
eventuate-common-database-testcontainersdeclares the capability of its old coordinates, so a Gradle build that gets both the old and the new artifact fails with a capability conflict. -
The database containers were in
eventuate-common-testcontainers, in the packageio.eventuate.common.testcontainers. A consumer that uses them depends oneventuate-common-database-testcontainers.
The migration guide lists the new groups, version properties and packages, and describes the OpenRewrite recipe that migrates a consumer.
./build-and-test-all-mysql8.sh ./build-and-test-all-postgres.sh ./build-and-test-all-mssql.sh
Each script builds and starts the database with Docker Compose, then runs ./gradlew build and the JDBC tests against it, with application-generated and database-generated IDs, after the migration/db-id migration, and with JSON payloads.
