defmodule MyApp.EntryService do def insert(params) do Ecto.Multi.new |> Ecto.Multi.insert(:entry, Entry.changeset(%Entry{}, params)) |> Ecto.Multi.insert(:log, Log.changeset(%Log{}, event: "entry inserted")) end end defmodule MyApp.SectionService do def insert(params) do Ecto.Multi.new |> Ecto.Multi.insert(:section, Entry.changeset(%Section{}, params)) |> Ecto.Multi.insert(:log, Log.changeset(%Log