Packages
multi_flow
1.0.0
Make Ecto.Multi flow like water π. A DSL and Builder pattern wrapper for Ecto.Multi that makes database transactions elegant, readable, and maintainable.
Current section
Files
Jump to
Current section
Files
multi_flow
CHANGELOG.md
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).
## [1.0.0] - 2025-10-21
### Added
- π Initial release of MultiFlow
- π DSL for declarative transaction definitions
- π§ Builder pattern for functional transaction composition
- π Comprehensive documentation and guides
- π§ͺ Full test coverage
- π― Real-world examples (sales order, user registration, inventory)
- π‘οΈ Type specs for Dialyzer support
- π Getting Started guide
- π DSL guide
- π Builder guide
- π Real-world examples guide
### Features
#### DSL Style
```elixir
use MultiFlow
transaction do
step :order, insert(order_changeset)
step :items, &create_items/1
step :delivery, &create_delivery/1
end
```
#### Builder Style
```elixir
MultiFlow.new()
|> add_step(:order, insert: order_changeset)
|> add_step(:items, &create_items/1)
|> execute()
```
### Key Benefits
- π **Flow naturally** - Write transactions that read like prose
- π― **DSL & Builder** - Choose your preferred style
- π **Dependency tracking** - Automatic step dependency management
- π‘οΈ **Type safe** - Full Dialyzer support
- π **Readable** - Self-documenting code
- π§ͺ **Testable** - Easy to test individual steps
- π **Zero overhead** - Compiles to raw Ecto.Multi
---
**"Make Ecto.Multi flow like water"** π