# `Arc.Chronicle`
[🔗](https://github.com/Cratis/Arc.Elixir/blob/main/lib/arc/chronicle.ex#L4)

Appends the events a command returned to Chronicle.

Events are grouped by event source id, in the order returned, and each group is appended
atomically (`Chronicle.append_with_result/3` for one event, `append_many_with_result/3` for several). Constraint and concurrency violations
become validation results (`"constraintViolation"`, `"concurrencyViolation"`) so a client can
show them like any other rejection.

# `append`

```elixir
@spec append(term(), String.t() | nil, Arc.Context.t()) ::
  :ok | {:error, [Arc.ValidationResult.t()]}
```

Appends `events` for a command whose key is `default_source`.

Returns `:ok` or `{:error, results}`.

---

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