# `Chronicle.Sinks.WellKnownSinkTypes`
[🔗](https://github.com/Cratis/Chronicle.Elixir/blob/main/lib/chronicle/sinks/well_known_sink_types.ex#L4)

Well-known sink type identifiers for Chronicle projections and reducers.

Use these atoms as the `:default_sink_type_id` option when starting
`Chronicle.Client`. The default is `:mongodb`.

## Available types

  * `:mongodb` — persists read models into MongoDB (default)
  * `:sql` — persists read models into a SQL database
  * `:in_memory` — persists read models in memory only
  * `:none` — no sink configured (used by passive projections)

## Example

    {Chronicle.Client,
      connection_string: "chronicle://localhost:35000",
      event_store: "my-store",
      default_sink_type_id: :sql,
      read_models: [MyApp.ReadModels.Account]}

# `in_memory`

```elixir
@spec in_memory() :: String.t()
```

Sink type identifier for InMemory.

# `mongodb`

```elixir
@spec mongodb() :: String.t()
```

Sink type identifier for MongoDB.

# `none`

```elixir
@spec none() :: String.t()
```

Sink type identifier for None (no sink).

# `resolve`

```elixir
@spec resolve(atom() | String.t()) :: String.t()
```

Resolves an atom sink type name to its string identifier.

Accepts `:mongodb`, `:sql`, `:in_memory`, or `:none`.
Raises `ArgumentError` for unknown values.

# `sql`

```elixir
@spec sql() :: String.t()
```

Sink type identifier for SQL.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
