Changelog
Track the latest updates and changes to Cleo.
📝 Changelog
All notable changes to Cleo will be documented in this file.
[1.0.9] - "Confident Hofstadter" - 2025-01-27
🚀 New Features
Client-Server Architecture
- 🔄 Implemented new CleoClient and CleoWorker classes for distributed task management
- 🌐 Added seamless integration with NextJS and Bun
- 📦 Enhanced queue management system with improved worker handling
🏗 Architecture Overview
flowchart LR
Client[CleoClient] -->|Schedule Tasks| Queue((Queue))
Queue -->|Process Tasks| Worker[CleoWorker]
Worker -->|Results| Client
subgraph "Task Processing"
Queue
Worker
end
💻 Technical Implementation
Client Implementation:
import { CleoClient } from 'cleo';
const client = new CleoClient({
endpoint: 'worker-url',
options: {
// client configuration
}
});
await client.scheduleTask({
type: 'processData',
payload: {...}
});
Worker Implementation:
import { CleoWorker } from 'cleo';
const worker = new CleoWorker({
tasks: {
processData: async (payload) => {
// task implementation
}
}
});
worker.start();
📚 Documentation
- Comprehensive documentation covering client-server setup and configuration
- Task scheduling patterns guide
- Worker pool management documentation
- Integration guides for NextJS and Bun
🔧 Dependencies
- Added @types/node for TypeScript support
- Added Bun runtime support packages
📋 Setup Instructions
- Install the package:
npm install cleo@1.0.9
- Add scripts to package.json:
{
"scripts": {
"start:worker": "bun run worker.ts",
"start:client": "next dev"
}
}
⚡ Performance
- Improved task queue processing efficiency
- Optimized worker handling for better resource utilization
- Reduced latency in client-server communication
🔐 Security
- Implemented secure communication channels between client and worker
- Added request validation and sanitization
📝 Notes
- This is a major architectural update that sets the foundation for distributed task processing
- All client-server communications are type-safe and validated
- Backward compatible with previous task definitions
[1.0.8] - 2025-03-13
🚀 New Features
- Enhanced task decorator with improved event filtering and lifecycle management
- Added exponential and fixed backoff strategies for retries
- Introduced task weights for group priority management
- Added comprehensive worker metrics and task history tracking
- Implemented group state change events
- Added support for Redis key prefixing for multi-tenant setups
🔧 Improvements
- Enhanced group task processing with better error handling
- Improved task event handling with filtered notifications
- Added task history with group information
- Enhanced worker monitoring capabilities
- Improved graceful shutdown procedures
- Added support for queue-specific concurrency limits
🐛 Bug Fixes
- Fixed race conditions in group task processing
- Resolved issues with duplicate event notifications
- Fixed memory leaks in long-running workers
- Improved error handling in task decorators
- Fixed task timeout handling
📚 Documentation
- Updated API reference with new configuration options
- Added comprehensive examples for group processing
- Improved best practices documentation
- Added scaling guidelines
- Enhanced monitoring documentation
[1.0.7] - 2024-03-20
Note: Cleo is currently in active development. Features and APIs may change.
🎯 Core Features Added
- Redis-based distributed task processing
- Advanced group task management
- Real-time task monitoring
- Priority-based queue processing
- Event-driven architecture using Redis pub/sub
- Built-in error handling with configurable retries
👥 Group Processing Features
- Round Robin task distribution
- FIFO (First In, First Out) processing
- Priority-based processing with group weights
- Dynamic group creation and management
- Group statistics and metrics
- Real-time group state tracking
📊 Monitoring & Events
- Task status change events
- Task progress tracking
- Group state change events
- Performance metrics collection
- Real-time task updates
🏗️ Infrastructure
- Monorepo setup with workspaces:
@cleo/core
: Core task processing engine@cleo/dashboard
: Web dashboard for monitoring@cleo/docs
: Documentation site
- Example projects and implementations
- Development tooling and scripts
🛠️ Developer Experience
- TypeScript-first development
- Decorator-based task definitions
- Clean and intuitive API
- Comprehensive documentation
- Example implementations
📦 Package Structure
- Core package for task processing
- Dashboard for monitoring and management
- Documentation with examples and guides
- Basic and advanced usage examples
🔧 Scripts & Tooling
- Build scripts for all packages
- Development server configurations
- Example project runners
- Concurrent development setup
[Upcoming]
Planned Features
- GraphQL API for task management
- Kubernetes integration
- Machine learning powered scheduling
- Enhanced dashboard features
- Additional processing strategies
- Extended monitoring capabilities