Skip to content

Release v1.1.0: performance boost & API improvements

Choose a tag to compare

@ognick ognick released this 02 Oct 12:57
· 31 commits to main since this release
f36abd4

🎯 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 -race flag 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 of Enqueue()/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