Skip to content

v0.0.37

Choose a tag to compare

@tigerroll tigerroll released this 08 Jun 00:01
· 159 commits to main since this release
ce6efb1

Release Notes

This release introduces a memory-efficient CSV streaming reader component for large-scale data processing, refactors the underlying infrastructure setup for better cross-platform compatibility, and enhances configuration type safety.

🚀 New Features & Components

  • CsvCursorReader Implementation:
    • Added a new reader capable of streaming and parsing large-scale CSV files sequentially, maintaining a constant low memory footprint.
  • Historical Weather Job Blueprint:
    • Completed the architectural design and JSL (Job Specification Language) configurations for processing historical climate data.
  • Storage Exists() API:
    • Extended both GCS and local file storage adapters to natively support object and file existence checks.

🐳 Infrastructure & Docker Enhancements

  • Multi-Architecture Portability:
    • Removed explicit platform: linux/amd64 constraints from the Docker configuration, allowing native, seamless builds on Apple Silicon and alternative host environments.
  • MySQL Engine Modernization:
    • Upgraded the local development database container from MySQL 8.0.28 to MySQL 8.4 (LTS).
  • Layout Standardization:
    • Renamed the root container/ directory to containers/ to unify project repository naming conventions.

🛠️ Refactoring & Internal Improvements

  • Type-Safe Configuration Management:
    • Converted internal AdapterConfigs typing from interface{} to map[string]any, reducing redundant type assertions and hardening compile-time predictability.
  • Dynamic JSL Loading:
    • Enhanced the execution engine to dynamically select and load target job blueprints at runtime based on the SERVICE_NAME environment variable.
  • Robust Exception Framework:
    • Streamlined core BatchError definitions and the IsErrorOfType matching engine to enable cleaner conditional retry and skip behaviors.
  • DB-less Bootstrap Fallbacks:
    • Provisioned dummy metrics and tracer implementations inside example/hello-world to resolve Fx dependency graphs in mock runtimes.