# `Chronicle.Observers.ObserverInformation`
[🔗](https://github.com/Cratis/Chronicle.Elixir/blob/main/lib/chronicle/observers.ex#L34)

What the event store knows about one of its observers.

# `event_type`

```elixir
@type event_type() :: %{
  Id: String.t(),
  Generation: non_neg_integer(),
  Tombstone: boolean()
}
```

One event type as reported by the kernel for an observer (its own `Id` and the
`Generation`/`Tombstone` the kernel has for it), not decoded into a client event type
module — an observer id has no code reference back to the modules that declared it.

# `observer_owner`

```elixir
@type observer_owner() :: :unknown | :none | :client | :kernel
```

# `observer_type`

```elixir
@type observer_type() :: :unknown | :reactor | :projection | :reducer | :external
```

# `running_state`

```elixir
@type running_state() ::
  :unknown | :active | :suspended | :replaying | :disconnected | :quarantined
```

# `t`

```elixir
@type t() :: %Chronicle.Observers.ObserverInformation{
  event_sequence_id: String.t(),
  event_types: [event_type()],
  handled_event_count: non_neg_integer(),
  id: String.t(),
  last_handled_event_sequence_number: non_neg_integer(),
  next_event_sequence_number: non_neg_integer(),
  owner: observer_owner(),
  running_state: running_state(),
  type: observer_type()
}
```

---

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