Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 15:38
· 58 commits to main since this release

Two mistakes that used to pass silently now fail where they are made: publishing an integration event outside a transaction, and taking an aggregate lock inside one. Both can be switched back to a warning. Scheduled jobs no longer need Redis in a single-instance environment.

Breaking

  • Acquiring an aggregate lock inside a transaction now throws IllegalStateException, through AggregateLocks and @AggregateLock alike. Such a lock is released before the transaction commits, so the next holder reads data from before the commit; nothing reported it. Re-entering a lock the thread already holds is not affected. Set ddk.concurrency.lock.inside-transaction=warn or ignore to keep the old behaviour. AggregateLocks built with the existing four-argument constructor does not check
  • Publishing an integration event outside a transaction now throws IllegalStateException. Such an event was never delivered, and with Spring Modulith it left an incomplete publication record behind, all without a word in the log. The check runs before the event is recorded. Set ddk.event.outside-transaction=warn or ignore to keep an application running while its publishing code is fixed

Added

  • ddk.job.lock.store=local keeps scheduled job locks in the memory of the current process, so jobs with @SchedulerLock run in an environment without Redis. Single instance only, and never chosen automatically