# `PhoenixMicro.Transport.RedisStreams`
[🔗](https://github.com/iamkanishka/phoenix_micro/blob/v1.0.0/lib/phoenix_micro/transport/redis_streams.ex#L1)

Redis Streams transport adapter using `Redix`.

Uses the Redis Streams data structure (XADD / XREADGROUP / XACK) for
durable, consumer-group-aware messaging with at-least-once delivery.

## Features

- Consumer groups via `XREADGROUP` / `XACK`.
- Pending entry list (PEL) recovery on restart via `XAUTOCLAIM`.
- DLQ routing for exhausted retries.
- Configurable block timeout and batch size.

## Configuration

    config :phoenix_micro,
      transports: [
        redis_streams: [
          url: "redis://localhost:6379",
          consumer_group: "phoenix_micro",
          consumer_name: "node_1",
          block_ms: 2_000,
          batch_size: 10,
          claim_idle_ms: 30_000
        ]
      ]

# `child_spec`

```elixir
@spec child_spec(keyword()) :: Supervisor.child_spec()
```

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

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

---

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