- Design comprehensive SQL schema for offset storage with future _index column support
- Implement SQLOffsetStorage with full database operations:
- Partition offset checkpoints with UPSERT functionality
- Detailed offset mappings with range queries and statistics
- Database migration system with version tracking
- Performance optimizations with proper indexing
- Add database migration manager with automatic schema updates
- Create comprehensive test suite with 11 test cases covering:
- Schema initialization and table creation
- Checkpoint save/load operations with error handling
- Offset mapping storage and retrieval with sorting
- Range queries and highest offset detection
- Partition statistics with NULL value handling
- Cleanup operations for old data retention
- Concurrent access safety and database vacuum
- Extend BrokerOffsetManager with SQL storage integration:
- NewBrokerOffsetManagerWithSQL for database-backed storage
- Configurable storage backends (in-memory fallback, SQL preferred)
- Database connection management and error handling
- Add SQLite driver dependency and configure for optimal performance
- Support for future database types (PostgreSQL, MySQL) with abstraction layer
Key TODOs and Assumptions:
- TODO: Add _index as computed column when database supports it
- TODO: Implement database backup and restore functionality
- TODO: Add configuration for database path and connection parameters
- ASSUMPTION: Using SQLite for now, extensible to other databases
- ASSUMPTION: WAL mode and performance pragmas for production use
- ASSUMPTION: Migration system handles schema evolution gracefully
All 11 SQL storage tests pass, providing robust persistent offset management.