Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[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
use MultiFlow
transaction do
step :order, insert(order_changeset)
step :items, &create_items/1
step :delivery, &create_delivery/1
endBuilder Style
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" ๐