Sea for Elixir

Build status badge Code coverage badge

Side-effect abstraction for Elixir - signal and observe your side-effects like a pro.

Motivation

Sea is a pattern library. As such it's really thin and technically unsophisticated (although it does take care of some little details so you don't have to). But the real benefits come from the pattern itself and its impact on your codebase.

Installation

Add sea to your list of dependencies in mix.exs:

def deps do
[
{:sea, "~> x.y"}
]
end

You may pick the newest version number from Hex.

As the package strictly follows semantic versioning, you may specify the version as ~> x.y so that you're up-to-date with minor & patch releases and stay away from breaking changes.

Usage

The docs for Sea module, along with complete usage examples, can be found on HexDocs.

Examples

In addition to docs, you may also be interested in the invoicing_app sample application that implements a simple DDD project. There, Sea plays a key role in decoupling contexts that interact with each other within a single database transaction.