# `Shardex.Shard`
[🔗](https://github.com/epinault/shardex/blob/v0.1.0/lib/shardex/shard.ex#L1)

A shard: a routing target with one pool per role (`:primary`, `:replica`, ...).

`status` is `:active` (routable), `:drain` (not routable, pools running) or
`:stopped` (not routable, pools stopped).

# `status`

```elixir
@type status() :: :active | :drain | :stopped
```

# `t`

```elixir
@type t() :: %Shardex.Shard{
  meta: map(),
  name: atom(),
  roles: %{required(atom()) =&gt; Shardex.Pool.t()},
  status: status()
}
```

---

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