Some checks failed
CI / Unit & Component Tests (pull_request) Failing after 3m16s
CI / OCR Service Tests (pull_request) Successful in 1m34s
CI / Backend Unit Tests (pull_request) Failing after 4m14s
CI / Unit & Component Tests (push) Failing after 3m29s
CI / OCR Service Tests (push) Successful in 50s
CI / Backend Unit Tests (push) Failing after 3m43s
Markus #4 (PR #366 review). PersonDisplayNameChangedEvent is the first custom application event in this codebase — the prior @EventListener (OcrTrainingService.recoverOrphanedRuns) consumed Spring's built-in ApplicationReadyEvent. The pattern is load-bearing for future cross-domain decoupling and warrants a documented decision rather than a comment buried in the listener. Captures: synchronous-by-default rationale, package layout (event in publisher's model/, listener in consumer's service/), saveAllAndFlush vs saveAll for exception surfacing, the migration path to @TransactionalEvent Listener + @Async if archive growth forces it, and the rejected alternatives (direct call, DB trigger, Hibernate entity listener). Refs #362 #366 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>