A look at what Applications and Umbrella Applications are in Elixir, as well as a deep dive into an approach for structuring your application as bounded contexts using Umbrella Apps.
is applicable. It provides Ubiquitous Language that is spoken by the team and expressed in its carefully designed software model” Eric Evans: Domain Driven Design
is applicable. It provides Ubiquitous Language that is spoken by the team and expressed in its carefully designed software model” Eric Evans: Domain Driven Design Huh?
sales customer fields end end defmodule Shipping.Customer do use Ecto.Schema schema “customers” do # Relevant shipping customer fields end end But we’re duplicating our schemas!
params) do user = get_current_user(conn) order = get_current_order(conn) Sales.OrderManager.complete_order(user, order, params) |> case do {:ok, order} -> render(conn, data: order) {:error, error} -> render_error(conn, 422, data: error) end end end
very thin • Your application more clearly signals its features and its intent • Simple, unit testable business logic separate from your UI layer What you end up with: