- Rust 89.7%
- MDX 7.1%
- Shell 1.1%
- Astro 0.6%
- Dockerfile 0.5%
- Other 1%
| .forgejo | ||
| assets | ||
| crates | ||
| site | ||
| .dockerignore | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| deny.toml | ||
| docker-bake.hcl | ||
| Dockerfile | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| release-plz.toml | ||
| ROADMAP.md | ||
tephra
An immutable event store with global ordering, built for the Dynamic Consistency Boundary.
Every event carries a type and a set of tags. A query reads exactly the events a decision depends on, and the same query guards the append that records it, so the consistency boundary is derived per decision rather than baked into an aggregate. One writer assigns every event a dense, monotonic position, so the whole log is a single global order and the tag and type indexes are derived from it and rebuildable.
Documentation: tephra.tqwewe.com
Run the server
# Docker: listens on 0.0.0.0:9000, data in the tephra-data volume.
docker run -p 9000:9000 -v tephra-data:/data git.tqwewe.com/tephra/tephra:latest
Or install the binary (Linux x86_64 / aarch64):
curl -fsSL https://tephra.tqwewe.com/install.sh | sh
Also cargo install tephra-server, cargo binstall tephra-server, or
nix run git+https://git.tqwewe.com/tephra/tephra. See Getting started.
Clients
Official clients over one protocol: Rust, Go, and JavaScript. See Clients.
Prefer the engine in-process? cargo add tephra and see Embedded.
Learn more
- ARCHITECTURE.md covers the design and the alternatives that were rejected.
- ROADMAP.md tracks what is done and what is next.
License
Apache-2.0.
tephra was built with AI use and careful review. The underlying seglog crate was authored by @tqwewe.