durable_outbox 0.2.0
durable_outbox: ^0.2.0 copied to clipboard
A reliable offline queue library with guaranteed delivery for Flutter/Dart applications.
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.
0.2.0 - 2025-12-05 #
Added #
- Enhanced State Tracking: New methods for accurate status-specific entry counts
OutboxStore.getCountsByStatus()- Get counts grouped by entry statusOutboxStore.watchCountsByStatus()- Stream real-time status-specific counts- Support for channel-based filtering in count methods
- New example
state_tracking_example.dartdemonstrating real-time state monitoring - Comprehensive test suite for state tracking (6 new tests)
Changed #
- Breaking:
DurableOutbox.watch()now provides accurate counts forprocessingCountandfailedCount- Previously these fields were always
0 - Now they reflect actual entry counts in each status
- Previously these fields were always
- Improved
OutboxStateaccuracy with real-time status tracking
Fixed #
- Fixed inaccurate state reporting in
DurableOutbox.watch()stream - Fixed missing
getCountsByStatus()andwatchCountsByStatus()implementations inSqliteStorestub - Fixed unused import warning in
state_tracking_example.dart
0.1.1 - 2025-01-13 #
Changed #
- Replaced
sqflitewithsqlite3package for pure Dart support - Removed
path_providerdependency to enable pure Dart compatibility - Improved
drain()method to process all queued entries, not just up to concurrency limit - Enhanced
markFailed()logic: entries withnextAttemptare now marked asqueuedfor retry instead offailed
Fixed #
- Fixed
drain()method to work correctly when scheduler is not running (autoStart: false) - Fixed retry logic: failed entries with retry schedule are now properly requeued
- Fixed test timing issues with retry backoff delays
Added #
- Comprehensive dartdoc documentation for public API (20%+ coverage)
- Example file (
example/example.dart) for pub.dev package requirements - Improved API documentation with usage examples
0.1.0 - 2025-01-13 #
Added #
- Core API with
DurableOutboxfacade OutboxStoreinterface with SQLite and Memory implementationsOutboxTransportinterface with HTTP implementationRetryPolicywith Decorrelated Jitter Backoff- Idempotency key support
- Pause/Resume functionality
- Watch streams for queue state and counts
- Basic metrics support
- Foreground runtime with scheduler
- Examples and tests
Features #
- Offline queue with guaranteed delivery
- Automatic retry with configurable backoff
- Priority-based processing
- Delayed start support (
notBefore) - Channel-based queue organization
- Cross-platform support (mobile, desktop, web)