# Scriba v0.1.0 - Table of Contents

A projection engine for Elixir event-sourced systems.

## Pages

- [Scriba](readme.md)
- [Changelog](changelog.md)

- Guides
  - [Migrating from commanded_ecto_projections](migration.md)
  - [Scriba Architecture](scriba_architecture.md)

## Modules

- [Scriba](Scriba.md): Public API surface for Scriba projections.
- [Scriba.Circuit](Scriba.Circuit.md): Per-projection failure state that has to outlive the producer.
- [Scriba.DeadLetter](Scriba.DeadLetter.md): Helpers for the `scriba_dead_letters` table — failed events recorded for
later inspection or replay.
- [Scriba.Event](Scriba.Event.md): The unit of data that flows from a `Scriba.Source` through the engine to a
`Scriba.Target`.
- [Scriba.Failure](Scriba.Failure.md): Classifies a failed commit into one of three kinds, so the engine can pick a
response that terminates.
- [Scriba.Info](Scriba.Info.md): Snapshot of a projection's runtime state, returned by `Scriba.info/2`.
- [Scriba.Migrations](Scriba.Migrations.md): Ecto migration helpers users invoke from their own migration files.
- [Scriba.Partitioner](Scriba.Partitioner.md): Routes events to workers by hashing `stream_id`.
- [Scriba.Position](Scriba.Position.md): Per-stream position tracking helpers — pure functions, no process.
- [Scriba.Projection](Scriba.Projection.md): Behaviour + `use` macro for the user-facing projection module.
- [Scriba.Source](Scriba.Source.md): Behaviour for event sources.
- [Scriba.Source.Commanded](Scriba.Source.Commanded.md): Broadway producer that subscribes to a Commanded event store and yields
events as `%Scriba.Event{}`-wrapped `Broadway.Message`s.
- [Scriba.Target](Scriba.Target.md): Behaviour for read-model targets.
- [Scriba.Target.Ecto](Scriba.Target.Ecto.md): Postgres-backed read-model target.
- [Scriba.Target.Test](Scriba.Target.Test.md): In-memory `Scriba.Target` for property tests and user-facing test helpers.
- [Scriba.Telemetry](Scriba.Telemetry.md): Catalog of telemetry events emitted by Scriba.

- Exceptions
  - [Scriba.BatchCommitError](Scriba.BatchCommitError.md): Raised in a source's producer process when a batch failed to commit.

