Packages

Essential utilities and helpers for Commanded CQRS/ES applications. Provides type-safe commands, events, enrichment pipeline, error handling, and more.

Current section

Files

Jump to
commanded_utils CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2024-01-XX
### Added
- Initial release of Commanded Utils
- `CommandedUtils.Command` module with `defcommand` macro for type-safe command definitions
- `CommandedUtils.Event` module with `defevent` macro for type-safe event definitions
- `CommandedUtils.Type` module for reusable type definitions
- `CommandedUtils.Helpers` module with 30+ utility functions for type conversions and decimal math
- `CommandedUtils.Middleware.Enrich` middleware for automatic command enrichment
- `CommandedUtils.Middleware.Logger` middleware for command/event logging
- `CommandedUtils.EventHandlerFailureContext` for configurable retry logic in event handlers
- Built-in event versioning and upcasting support
- Multi-tenancy support with optional tenant and creator fields
- Comprehensive documentation and examples
- Bank Account example implementation
- Full test coverage
### Features
- Elegant DSL for commands and events with minimal boilerplate
- Type safety built on Ecto schemas with automatic validation
- Clean enrichment pipeline with convention over configuration
- Event versioning with automatic upcasting
- Configurable error handling and retry logic
- Helper functions for safe type conversions and decimal operations
- Multi-tenancy ready with optional fields support
- Comprehensive documentation and examples
### Dependencies
- Requires Elixir ~> 1.14
- Requires Commanded ~> 1.4
- Requires Ecto ~> 3.10
- Requires Jason ~> 1.4
- Requires Decimal ~> 2.0
- Optional: Commanded Ecto Projections ~> 1.3