Changes for version 0.50 - 2026-02-03

  • MAJOR ARCHITECTURAL OVERHAUL
    • Complete rewrite of the Storage and Persistence layer to use a decoupled "Bridge & Worker" architecture.
    • Implementation of DBIx::Class::Async::Row lifecycle management:
      • Introduced "Dirty" column tracking to minimize SQL UPDATE payloads.
      • Added shadow-key optimization for high-speed attribute access.
      • Robust AUTOLOAD mechanism for transparent ResultSet/Row interaction.
    • Enhanced Race Condition Recovery:
      • find_or_create() now handles unique constraint collisions automatically via a catch-and-retry strategy.
    • Improved Memory & Process Management:
      • Weakened schema references in Storage to prevent worker leaks.
      • Refined worker pool lifecycle (connect/disconnect) for cleaner shutdowns in event-loop environments.
    • Streaming Support:
      • Introduced DBIx::Class::Async::Storage::DBI::Cursor for non-blocking, memory-efficient iteration over large result sets.
    • Persistence Integrity:
      • Added strict Primary Key validation in find(), update(), and delete() to prevent ambiguous database operations.
    • Documentation:
      • Full POD refresh for Row, ResultSet, and Storage classes reflecting the new async design patterns.

Modules

Non-blocking, multi-worker asynchronous wrapper for DBIx::Class
Non-blocking resultset proxy with Future-based execution
Asynchronous pagination handling for Async ResultSets
Asynchronous operations on a single ResultSource column
Asynchronous Row object representing a single database record.
Non-blocking, worker-pool based Proxy for DBIx::Class::Schema
Storage Layer for DBIx::Class::Async
DBI-based async storage backend for DBIx::Class::Async
Asynchronous cursor for DBIx::Class ResultSets using Futures