sage v0.2.0 API Reference

Modules

Sage is an implementation of Sagas pattern in pure Elixir. It is go to way when you dealing with distributed transactions, especially with an error recovery/cleanup. Sagas guarantees that either all the transactions in a saga are successfully completed or compensating transactions are run to amend a partial execution

This module provides behaviour for Sage executors

This module is responsible for Sage execution implementation

This module provides behaviour for compensation error handling

This module described experimental features planned for Sage

This module provides behaviour for Sage tracers

Exceptions

Raised at runtime when the asynchronous transaction timed out

Raised at runtime when operation with duplicated name is added to Sage

Raised at runtime when the compensation or operation has an malformed return

Raised at runtime when the transaction or operation has an malformed return

Raised at runtime when the compensation tries to apply circuit breaker on transactions it’s not responsible for