Resumable
Clients can resume from any offset after disconnection
Unbroken Protocol provides a simple, web-native primitive for applications requiring ordered, replayable data streams with support for catch-up reads and live tailing. It’s designed as a foundation for:
Resumable
Clients can resume from any offset after disconnection
Durable
Data persists until explicitly deleted or expired
HTTP Native
Works with CDNs, proxies, and standard infrastructure
Simple
Minimal API surface with standard HTTP semantics
# Create a streamcurl -X PUT http://localhost:9999/events \ -H "Content-Type: application/json"
# Append datacurl -X POST http://localhost:9999/events \ -H "Content-Type: application/json" \ -d '{"event": "user_signup", "user_id": 42}'
# Read datacurl "http://localhost:9999/events?offset=-1"
# Live tail with SSEcurl "http://localhost:9999/events?offset=-1&live=sse"| Method | Path | Description |
|---|---|---|
PUT | {stream} | Create |
POST | {stream} | Append |
GET | {stream}?offset=X | Read |
GET | {stream}?offset=X&live=sse | SSE stream |
HEAD | {stream} | Metadata |
DELETE | {stream} | Delete |
| Header | Direction | Description |
|---|---|---|
Stream-Next-Offset | Response | Next offset for reads |
Stream-Up-To-Date | Response | At end of stream |
Stream-TTL | Request | Time-to-live (create) |
Stream-Seq | Request | Writer sequence |
Unbroken Protocol serves as the foundation for building domain-specific streaming protocols:
File Streaming
Resumable file uploads/downloads with real-time watching
Terminal Streaming
Shared terminal sessions with persistent output history
Agent Streaming
AI agent sessions with tool use and message persistence
Standalone servers use port 9999/tcp.
Unbroken Protocol builds on ideas from:
MIT License - See LICENSE for details.