# Ursula > Open-source Distributed Durable Streams over HTTP, backed by S3. Customer-facing documentation. Each page is also available as raw markdown at https://ursula.tonbo.io/docs/.md (e.g. https://ursula.tonbo.io/docs/quick-start.md). For all docs concatenated, fetch https://ursula.tonbo.io/llms-full.txt. ## Getting Started - [Ursula](https://ursula.tonbo.io/docs/introduction.md): A self-hosted, distributed server for append-only event timelines. Thread-per-core, multi-Raft, S3-backed. - [Quick Start](https://ursula.tonbo.io/docs/quick-start.md): Run Ursula locally, create a stream, append data, and subscribe with SSE. - [Why Ursula](https://ursula.tonbo.io/docs/why-ursula.md): The four properties Ursula keeps that other servers force you to trade, and the per-entity timeline model that makes the pattern simple to build on. - [Clients](https://ursula.tonbo.io/docs/clients.md): Talking to Ursula from any HTTP client. ## Architecture - [Overview](https://ursula.tonbo.io/docs/architecture/overview.md): How Ursula realizes the Durable Streams protocol with thread-per-core shards, multi-Raft replication, and an in-memory hot ring backed by S3 cold storage. ## Comparisons - [Comparisons](https://ursula.tonbo.io/docs/competitive-comparison.md): How Ursula relates to other stream and storage systems for application-facing timelines. ## Concepts - [Streams](https://ursula.tonbo.io/docs/concepts/streams.md): Ursula's core append-only stream primitive, with naming, content type, and lifecycle. - [Buckets](https://ursula.tonbo.io/docs/concepts/buckets.md): Buckets group related streams into namespaces. - [Offsets](https://ursula.tonbo.io/docs/concepts/offsets.md): Position tokens inside a stream, with how to read, resume, and follow safely. - [Read Modes](https://ursula.tonbo.io/docs/concepts/read-modes.md): Compare catch-up, long-poll, and SSE reads for Ursula clients. - [Exactly-Once Writes](https://ursula.tonbo.io/docs/concepts/exactly-once-writes.md): Producer identifiers, epochs, and sequence numbers deliver deduplicated appends. - [Conditional Writes](https://ursula.tonbo.io/docs/concepts/conditional-writes.md): Coordinate writers using Stream-Seq to enforce ordering without locks or transactions. - [Snapshots](https://ursula.tonbo.io/docs/concepts/snapshots.md): Compact stream history and accelerate first-load for new clients. - [Bootstrap](https://ursula.tonbo.io/docs/concepts/bootstrap.md): Initialize a new client with one request, fetching snapshot plus post-snapshot updates. - [Durability and Consistency](https://ursula.tonbo.io/docs/concepts/durability-and-consistency.md): Understand Ursula's durability guarantees, linearizable writes, and hot-cold storage model. - [Binary SSE](https://ursula.tonbo.io/docs/concepts/binary-sse.md): How Ursula delivers binary payloads over the Server-Sent Events transport. - [Length-Prefixed Framing](https://ursula.tonbo.io/docs/concepts/len-prefixed-framing.md): A simple convention for delimiting messages inside raw byte streams. ## API Reference - [API overview](https://ursula.tonbo.io/docs/api/overview.md): Learn the public Ursula HTTP routes for creating, appending, reading, and replaying streams. - [Create bucket](https://ursula.tonbo.io/docs/api/create-bucket.md): Create a bucket namespace for streams. - [Create stream](https://ursula.tonbo.io/docs/api/create-stream.md): Create a new append-only stream within a bucket. - [Append](https://ursula.tonbo.io/docs/api/append.md): Append data to an existing stream, or close it. - [Read stream](https://ursula.tonbo.io/docs/api/read.md): Read data from a stream using catch-up, long-poll, or SSE modes. - [Head stream](https://ursula.tonbo.io/docs/api/head-stream.md): Get stream metadata without reading its content. - [Publish snapshot](https://ursula.tonbo.io/docs/api/publish-snapshot.md): Upload a snapshot blob at a specific stream offset. - [Read snapshot](https://ursula.tonbo.io/docs/api/read-snapshot.md): Read the latest snapshot or a snapshot at a specific offset. - [Bootstrap](https://ursula.tonbo.io/docs/api/bootstrap.md): Recover full stream state from snapshot plus retained updates in a single request. - [Delete stream](https://ursula.tonbo.io/docs/api/delete-stream.md): Delete a stream and its data. - [v1 compatibility](https://ursula.tonbo.io/docs/api/v1-compatibility.md): Flat Durable Streams protocol routes under /v1/stream/. ## Install & Deploy - [Install](https://ursula.tonbo.io/docs/install.md): Build Ursula from source. Ships two binaries — the `ursula` server and the `ursulactl` operator CLI. - [Run locally](https://ursula.tonbo.io/docs/run-locally.md): Start a single-node Ursula server and verify the HTTP API. - [Configuration](https://ursula.tonbo.io/docs/configuration.md): Every Ursula configuration knob - CLI flags and environment variables. - [Configure cold storage](https://ursula.tonbo.io/docs/configure-s3.md): Configure Ursula cold storage with S3-compatible object storage or a local filesystem. - [Deploy a cluster](https://ursula.tonbo.io/docs/deploy-cluster.md): Run a three-node Ursula cluster with static-membership Raft and shared cold storage. - [Security](https://ursula.tonbo.io/docs/security.md): What Ursula does and does not handle in the security model, and how to deploy it safely. - [Operations](https://ursula.tonbo.io/docs/operations.md): Day-2 surfaces around `ursulactl` — metrics, admin endpoints, SSH-side lifecycle, S3 cleanup, backup posture, and logs. - [Troubleshooting](https://ursula.tonbo.io/docs/troubleshooting.md): Common Ursula failure modes, what they look like, how to diagnose them, and what to do. ## Protocol Specification - [Durable Streams Protocol](https://ursula.tonbo.io/docs/specs/durable-stream.md): The base HTTP protocol specification for creating, appending to, and reading from durable, append-only byte streams. - [Durable Streams Extensions](https://ursula.tonbo.io/docs/specs/extensions.md): Extensions to the Durable Streams Protocol: bucket namespacing, snapshot semantics, bootstrap delivery, and Ursula append batching. ## Reference - [ursulactl](https://ursula.tonbo.io/docs/cli.md): The operator CLI for an Ursula cluster. Raft-aware rolling restarts, status, and readiness gates over plain HTTP.