v21.0
Notifuse/notifusev21.0Dec 27, 2025by pierre-b
AI Summary
Release v21.0 introduces a centralized email queue system for outbound marketing emails with priority-based processing, retry logic, and per-integration rate limiting. This major update also adds a background worker with graceful shutdown, automation timeline event tracking, and single-tick execution for processing multiple automation nodes.
Key Highlights
- Priority-based email queue with retry logic and per-integration rate limiting
- Background worker with graceful shutdown support
- Automation timeline events (`automation.start` and `automation.end`)
- Single-tick execution processing up to 10 automation nodes per scheduler tick
- New `email_queue` table with 5 optimized indexes
Breaking Changes
- Broadcast status `sending` renamed to `processing`
- Broadcast status `sent` renamed to `processed`
New Features
- Priority-based email queue with retry logic and per-integration rate limiting
- Background worker with graceful shutdown support
- Automation timeline events: `automation.start` and `automation.end` tracking
- Single-tick execution: Process up to 10 automation nodes per scheduler tick
- New `email_queue` table with 5 optimized indexes
- New `enqueued_count` column on `broadcasts` table
- New `automation_id` column on `automation_node_executions` table for analytics
- New index `idx_message_history_broadcast_id` for broadcast queries
Full Release Notes
# Release v21.0 ## Email Queue System Centralized queue for all outbound marketing emails with unified delivery for broadcasts and automations. ### New Features - **Priority-based email queue** with retry logic and per-integration rate limiting - **Background worker** with graceful shutdown support - **Automation timeline events**: `automation.start` and `automation.end` tracking - **Single-tick execution**: Process multiple automation nodes per scheduler tick (up to 10 nodes) ### Schema Changes - New `email_queue` table with 5 optimized indexes - Added `enqueued_count` column to `broadcasts` table - Added `automation_id` column to `automation_node_executions` for analytics - New index `idx_message_history_broadcast_id` for broadcast queries ### Breaking Changes - Broadcast statuses renamed: `sending` → `processing`, `sent` → `processed`