# `Jido.Messaging.BridgeServer`
[🔗](https://github.com/agentjido/jido_messaging/blob/v1.0.0/lib/jido_messaging/bridge_server.ex#L1)

Runtime bridge process for a single configured bridge.

Holds resolved bridge config and owns adapter listener child specs.

# `state`

```elixir
@type state() :: %{
  instance_module: module(),
  bridge_id: String.t(),
  config: Jido.Messaging.BridgeConfig.t(),
  listener_supervisor: pid() | nil,
  last_ingress_at: DateTime.t() | nil,
  last_outbound_at: DateTime.t() | nil,
  last_error: term() | nil
}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `mark_error`

```elixir
@spec mark_error(module(), String.t(), term()) :: :ok
```

Records the latest bridge error without crashing the caller.

# `mark_ingress`

```elixir
@spec mark_ingress(module(), String.t()) :: :ok
```

Records successful inbound activity for a running bridge.

# `mark_outbound`

```elixir
@spec mark_outbound(module(), String.t()) :: :ok
```

Records successful outbound activity for a running bridge.

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

Starts a bridge runtime process for a configured bridge.

# `status`

```elixir
@spec status(pid()) :: {:ok, Jido.Messaging.BridgeStatus.t()}
```

Returns a status snapshot for the bridge process.

# `whereis`

```elixir
@spec whereis(module(), String.t()) :: pid() | nil
```

Returns the running bridge process for `bridge_id`, if one is registered.

---

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