Changelog

View Source

All 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
end

Builder 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" ๐ŸŒŠ