What Trubase DB does.
No fluff. Every capability is a projection of three engine primitives — the log, the timeline, and the task — explained in enough depth for a senior engineer.
Backends Are Tasks
Every backend is a Tokio async task weighing kilobytes, not an OS process weighing 10–30MB. The work-stealing scheduler spreads millions of tasks across every core. Zero processes. Zero fork() calls. Zero connection poolers.
Instant Branch
Branching is a metadata write — milliseconds by construction, not by benchmark. Copy-on-write at the page level over object storage: a backend holding 1TB branches as fast as one holding 1KB, and ten thousand branches share the same base pages.
Scale to Zero
Not "minimum instance." When a backend goes idle its tasks drop and their memory is reclaimed — no container to stop, no VM to drain. State persists on object storage as cold bytes.
Time Travel & Instant Restore
The write-ahead log is the database, so every backend remembers its history. Query data as of any moment. Restore is branching from the past — recovery in milliseconds, not hours.
Bottomless Storage
Data lives as immutable layers on object storage; local RAM and NVMe are just caches. No disk provisioning, no "disk full," no resize windows — capacity is the object store's capacity.
Postgres, Proven
The bar: 100% of PostgreSQL's observable behavior — wire protocol, SQL semantics, catalogs, error codes. Measured by Postgres's own 200,000-test suite, with the pass rate published as a public scoreboard. The claim never exceeds the number.
Transactional Queues
Queues and streams are native projections of the engine's write-ahead log. Publish an event and commit the row in one transaction — exactly-once, no outbox pattern, no sync lag.
Offline Sync
The same engine compiles to a slim client build for mobile, desktop, and the browser. Offline is just a branch hosted on the device; reconnecting is a rebase against the server timeline.
Pure Rust on Tokio
Postgres rebuilt from scratch in pure, safe Rust — no C anywhere in the address space, no unsafe blocks, no garbage collector. Memory safety here isn't hygiene; it's the multi-tenancy security model.
Backend Lifecycle
Backends are first-class values: mint() → branch() → suspend() → wake() → dispose(). Minting allocates nothing — it's a metadata write. Resources attach when traffic arrives and release when it stops.