Revision history for PAGI::FastAPI::Queue::Driver::Redis

0.0.1  2026-08-19
       [FEATURE]
       - Initial release.
       - Added PAGI::FastAPI::Queue::Driver::Redis, a Redis-backed storage
         driver for PAGI::FastAPI::Queue. Stores each topic as a Redis
         list (RPUSH to enqueue, LPOP to dequeue), so queued items are
         shared across every worker process and host pointed at the same
         Redis instance and key prefix.
       - Built on Async::Redis (Future::IO-based) rather than
         Net::Async::Redis, matching PAGI::FastAPI's own documented
         event-loop philosophy (Future::IO is the goal, IO::Async is an
         implementation detail).
       - Supports either an injected, pre-built client via the `redis`
         constructor option, or auto-construction from host/port/uri/
         username/password/database options.
       - Connects lazily (on first use) and only once per driver
         instance; no network I/O happens in the constructor.
       - Aggregate size() (no topic given) walks the keyspace with
         Redis's non-blocking SCAN command and sums LLEN per matching
         key; documented as a best-effort, non-atomic snapshot.
       - Added disconnect(), a driver-specific extension (not part of the
         PAGI::FastAPI::Queue::Driver contract) for clean shutdown.

       [TESTS]
       - Added t/00-load.t.
       - Added t/01-queue_driver_redis.t: full unit test suite (FIFO
         ordering, JSON round-tripping of refs/falsy values, prefix
         namespacing, per-topic and aggregate size, multi-page SCAN
         cursor handling, lazy/once-only connect, disconnect
         delegation), driven entirely by an injectable fake client
         (t/lib/Test/FakeAsyncRedis.pm) so the suite runs offline without
         a real Redis server or Async::Redis installed.
       - Added t/02-queue_driver_redis_live.t: optional integration test
         against a real Redis server, skipped unless both Async::Redis
         is installed and PAGI_TEST_REDIS=host:port is set.

       [DOCUMENTATION]
       - Full POD for PAGI::FastAPI::Queue::Driver::Redis, including the
         Async::Redis-vs-Net::Async::Redis rationale and the SCAN-based
         aggregate size() caveat.
