Repository navigation
Release v1.1.0: performance boost & API improvements
🎯 Major Performance Optimization
- BFS Algorithm: Replaced recursive dependency detection with breadth-first search using queues
- Memory Efficiency: Optimized component graph traversal for better performance with large component trees
- Faster Startup: Reduced overhead in dependency resolution phase
🔧 New Adapter Pattern
- Component Wrapping: Wrap existing components with custom logic using
NewAdapter() - Custom Startup Logic: Add readiness probes and custom initialization without modifying original components
- Delegate Naming: Automatic component naming for better logging and debugging
🧪 Enhanced Testing Suite
- 45 Test Cases: Comprehensive coverage including adapter pattern, timeouts, and nested lifecycles
- Race Condition Free: All tests pass with
-raceflag and multiple iterations - Timeout Testing: Configurable startup timeouts with proper error handling
- Nested Lifecycle Tests: Verify lifecycle-as-component functionality
🗑️ Simplified Architecture
- Removed Metrics System: Eliminated complex metrics collection (107 lines removed)
- Cleaner API: Focused on core lifecycle management without observability overhead
- Reduced Dependencies: Simpler codebase with fewer moving parts
🔄 API Consistency
- Queue Methods: Standardized
Push()/Pop()instead ofEnqueue()/Dequeue() - Nested Lifecycles:
AsComponent()method for lifecycle composition - Fluent Registration:
Register()helper for chaining component creation
📚 Documentation Overhaul
- Classic README Structure: Moved examples to dedicated "Advanced Usage" section
- Practical Examples: Real-world usage patterns with adapter pattern
- Clear API Reference: Comprehensive documentation for all public methods
⚡ Performance Metrics
- 98.7% Test Coverage: Maintained high code coverage
- Zero Race Conditions: Verified concurrent safety
- Optimized Graph Traversal: BFS algorithm for dependency detection
- Memory Efficient: Reduced allocation overhead in component startup
Breaking Changes: Queue method names changed (Enqueue/Dequeue → Push/Pop)
Migration: Update queue usage in existing code
Compatibility: Full backward compatibility for core lifecycle functionality