# slap_streams v0.4.0 - Table of Contents > A Durable Streams server that persists data using SlateDB. ## Pages - [slap_streams](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) ## Modules - Streams - [Slap.Streams](Slap.Streams.md): Durable Streams operations, in process (the HTTP layer and Yjs build on these). Each stream lives on the shard `Slap.Streams.Cluster.shard_for(path)` and is served by one process there. Writes are acknowledged only once durable. - [Slap.Streams.Cluster](Slap.Streams.Cluster.md): The shards that hold the streams, a `Slap.Cluster`. Each shard allocates stream ids and supervises one process per active stream. - [Slap.Streams.Offset](Slap.Streams.Offset.md): Offsets on the wire, in the official server's format and accounting, so that offsets stay valid for streams migrated from it. - [Slap.Streams.Wait](Slap.Streams.Wait.md): A pending stream wait. Use `ref/1` to match its wake message. - HTTP - [Slap.Streams.HTTP.Metrics](Slap.Streams.HTTP.Metrics.md): Serves `Slap.Streams.Metrics` at `GET /metrics`, for Prometheus: a Plug to mount where Prometheus can reach it and the public cannot. It does not authenticate. - [Slap.Streams.HTTP.Router](Slap.Streams.HTTP.Router.md): The [Durable Streams protocol](https://github.com/durable-streams/durable-streams/blob/main/PROTOCOL.md) (ยง5) as a Plug, over `Slap.Streams`. The stream's name is the full request path, under `:prefix` (default `/v1/stream`). When mounted with `Plug.forward/4`, the mount path precedes `:prefix` and is part of the stream name. - Metrics - [Slap.Streams.Metrics](Slap.Streams.Metrics.md): Prometheus metrics from `Slap.Streams.Telemetry`'s events and `slap_cluster`'s, kept in ETS and rendered in the text exposition format by `render/0` (served by `Slap.Streams.HTTP.Metrics`). - [Slap.Streams.Telemetry](Slap.Streams.Telemetry.md): Telemetry events, all under `[:slap, :streams, ...]`. `Slap.Streams.Metrics` turns them, and `slap_cluster`'s, into Prometheus metrics.