|
| 1 | + |
| 2 | +# RedisSMQ V8 Release Notes |
| 3 | + |
| 4 | +## Overview |
| 5 | +RedisSMQ v8 represents a major evolution of our message queue system, with significant improvements to architecture, performance, and developer experience. This release focuses on reliability, scalability, and modern development practices. |
| 6 | + |
| 7 | +## Table of Contents |
| 8 | +- [Overview](#overview) |
| 9 | +- [New Features](#new-features) |
| 10 | +- [Improvements](#improvements) |
| 11 | +- [Breaking Changes](#breaking-changes) |
| 12 | +- [Compatibility](#compatibility) |
| 13 | +- [Documentation](#documentation) |
| 14 | + |
| 15 | +## New Features |
| 16 | + |
| 17 | +### Core Architecture |
| 18 | +- **Reworked System Design**: Refactored the message queue core codebase to support multiple message types and delivery models with focus on reliability and scalability |
| 19 | +- **Queue-Scoped Workers**: Replaced global workers with queue-scoped workers for better resource allocation and management |
| 20 | +- **Migration to Monorepo**: Restructured into a monorepo architecture for improved package organization, dependency management, and development workflow |
| 21 | + |
| 22 | +### Messaging |
| 23 | +- **Pub/Sub Delivery Model**: Implemented a publish/subscribe pattern alongside existing queue models, enabling broadcast messaging to multiple consumers |
| 24 | +- **Message Tracking System**: Added comprehensive message lifecycle tracking with unique IDs from publication to consumption |
| 25 | +- **Message Envelope Architecture**: Redesigned with `ProducibleMessage`/`ConsumableMessage`/`MessageEnvelope` for clearer separation of concerns |
| 26 | + |
| 27 | +### API |
| 28 | +- **Enhanced Message Status API**: Introduced `getMessageStatus()` method and status tracking for improved visibility into message processing |
| 29 | +- **REST API Integration**: Created a comprehensive REST API with OpenAPI specification for managing queues and messages |
| 30 | + |
| 31 | +### Tools |
| 32 | +- **Embedded Redis Server**: Integrated an embedded Redis server for streamlined development and testing |
| 33 | + |
| 34 | +## Improvements |
| 35 | + |
| 36 | +### Performance & Reliability |
| 37 | +- **LUA-Based Operations**: Migrated Redis operations to LUA scripts for atomic execution, improved performance, and data consistency |
| 38 | +- **Worker Threads**: Added support for isolating message handlers in separate worker threads to prevent blocking the main event loop |
| 39 | +- **Async Error Handling**: Implemented robust error handling patterns for asynchronous operations |
| 40 | + |
| 41 | +### Developer Experience |
| 42 | +- **Enhanced TypeScript Definitions**: Improved type definitions throughout the codebase for better IDE integration and compile-time checks |
| 43 | +- **Unified Event System**: Consolidated consumer/producer event listeners into a consistent, predictable API |
| 44 | +- **Typed Events**: Implemented TypeScript event types for improved type safety and developer experience |
| 45 | +- **Granular Error Handling**: Developed specialized error classes for precise error reporting and handling |
| 46 | +- **PNPM Package Manager**: Replaced NPM with PNPM for faster, more efficient package management |
| 47 | + |
| 48 | +### Code Quality |
| 49 | +- **Code Structure Optimization**: Refactored for improved readability, maintainability, and adherence to best practices |
| 50 | +- **Standardized Patterns**: Implemented consistent design patterns throughout the codebase |
| 51 | +- **Enhanced Testing Framework**: Migrated to vitest framework for more effective testing |
| 52 | + |
| 53 | +## Breaking Changes |
| 54 | +- **API Changes**: Several API changes require updates to existing code |
| 55 | +- **Data Structure Compatibility**: Redis data structures are NOT compatible with v7.x |
| 56 | + |
| 57 | +## Compatibility |
| 58 | +- **Node.js Compatibility**: Supports Node.js v20 and above, with full testing on v20 and v22 |
| 59 | +- **Redis Compatibility**: Supports Redis v4 and above, with full testing on v7.2.8 |
| 60 | + |
| 61 | +## Documentation |
| 62 | +- **Interactive API Documentation**: Completely revamped API documentation with interactive examples and detailed explanations |
| 63 | +- **Architectural Diagrams**: Added new system architecture, message flow, and component interaction diagrams |
0 commit comments