# Outbox v0.1.0-beta.1 - Table of Contents

> Transactional outbox + Oban fan-out + Phoenix.PubSub broadcaster for Phoenix/Ecto apps. Minimal, opinionated, drop-in.

## Modules

- [Outbox](Outbox.md): Public facade for the Outbox transactional event bus.
- [Outbox.Application](Outbox.Application.md): Outbox's root supervisor.
- [Outbox.Config](Outbox.Config.md): Read-only accessors for Outbox's application configuration.
- [Outbox.Dispatcher](Outbox.Dispatcher.md): Polls the `outbox_events` table for undispatched events and fans them
out to subscribers.
- [Outbox.OutboxEvent](Outbox.OutboxEvent.md): Ecto schema for the `outbox_events` table.
- [Outbox.Pruner](Outbox.Pruner.md): Deletes old, dispatched outbox events.
- [Outbox.Registry](Outbox.Registry.md): Resolves event names to subscriber modules.
- [Outbox.Subscriber](Outbox.Subscriber.md): Behaviour for modules that react to domain events from the bus.
- [Outbox.SubscriberJob](Outbox.SubscriberJob.md): Oban worker that runs a single subscriber's `handle_event/3` for one
outbox event.
- [Outbox.Testing](Outbox.Testing.md): Test helpers for asserting domain-event publication and exercising
subscribers synchronously.
- [Outbox.Ticker](Outbox.Ticker.md): Periodically runs `Outbox.Dispatcher.run/0` in a supervised Task.

## Mix Tasks

- [mix outbox.gen.migration](Mix.Tasks.Outbox.Gen.Migration.md): Generates the `outbox_events` table migration in the host's
`priv/repo/migrations/` directory.

