apply plugin: 'ca.platform-module' // Durable mutation idempotency: the operation ledger entity, its state machine, the vendor-neutral // repository port and the Spring Data JPA binding, plus the migration that owns the unique // constraint the whole contract rests on. // // The port is what the policy layer consumes; the Spring Data interface is the adapter. Tests here // run against a hand-rolled in-memory port implementation — a real datastore is only justified when // vendor semantics are the thing under test, and the constraint is asserted by the migration. dependencies { api project(':grpc:grpc-core-api') // api: the ledger entity is a public JPA type and the repository interface is a public Spring // Data type, so both vendor APIs appear in this module's public signatures. api 'jakarta.persistence:jakarta.persistence-api' api 'org.springframework.data:spring-data-jpa' }