Skip to content

Latest commit

 

History

History
27 lines (19 loc) · 2.24 KB

File metadata and controls

27 lines (19 loc) · 2.24 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

6.0.0 - 2026-03-25

Added

  • Database::EVENT_CACHE_READ_FAILURE event constant, emitted when a cache load fails during a document read. Previously these failures incorrectly emitted EVENT_CACHE_PURGE_FAILURE, making it impossible to distinguish a read-side cache miss from a write-side purge failure.

Changed

  • Cache purge in updateDocument is now performed outside the database transaction. Previously a cache failure inside the transaction would roll back the committed write; now the DB write is always committed first and the cache is invalidated afterward (half-open / fail-open pattern).
  • Cache purge in deleteDocument follows the same transactional ordering fix: the row is deleted inside the transaction and the cache entry is evicted only after the transaction commits.
  • All event-listener invocations for cache-related events (EVENT_CACHE_PURGE_FAILURE, EVENT_CACHE_READ_FAILURE, EVENT_DOCUMENT_PURGE) are now wrapped in an inner try/catch. A listener that throws no longer propagates the exception up to the caller — the error is logged via Console::error and execution continues.

Fixed

  • getDocument no longer emits EVENT_CACHE_PURGE_FAILURE when the cache is unavailable for a read. It now correctly emits EVENT_CACHE_READ_FAILURE, so callers that distinguish the two events receive the right signal.
  • A broken or unavailable cache can no longer cause updateDocument or deleteDocument to surface an exception to the caller. Both operations are now fully fail-open with respect to the cache layer.
  • A throwing EVENT_CACHE_PURGE_FAILURE or EVENT_CACHE_READ_FAILURE listener can no longer abort an in-progress database operation.
  • Fixed 6 MariaDBTest E2E tests that failed with Incorrect table name due to collection IDs derived from long method names exceeding MariaDB's 64-character identifier limit.