What is Ursula?
mainUrsula is a self-hosted, distributed server designed for replayable, append-only event timelines. It is used to manage the history behind document edits, agent runs, workflows, and chat sessions.
Key Characteristics
- HTTP-native: Uses
PUTto create,POSTto append, andGETto replay or tail via long-poll/SSE. - One timeline per resource: Instead of high-throughput pipelines, Ursula uses a stream per document, session, workflow, room, or agent run.
- Thread-per-core × multi-Raft: Each stream hashes to a specific Raft group and owner core. This architecture ensures that hot-path requests touch only one core, avoiding cross-core synchronization and preventing slow followers in one group from stalling others.
- Hot ring + S3 cold tier: Writes are committed at Raft quorum in an in-memory ring (hot tier). Older segments are flushed to S3 (cold tier) in the background. A single
GETrequest transparently spans both tiers.