# `Concord.Sync.Dispatcher`
[🔗](https://github.com/gsmlg-dev/concord/blob/main/lib/concord/sync/dispatcher.ex#L1)

Receives change events from the Raft state machine via Ra `:send_msg` effects
and forwards them to the Watch Hub and Change Log.

Only the leader node emits `:send_msg` effects, so the Dispatcher only
processes events on the current leader. On follower nodes, it idles.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `dispatch`

```elixir
@spec dispatch([Concord.Sync.Event.t()]) :: :ok
```

Dispatch events directly (called from state machine or tests).

# `start_link`

