Concepts
Branches, endpoints, scale-to-zero — the model behind Kisenon.
Kisenon separates storage from compute, the way Neon does. Understanding that split makes everything else fall out.
Storage
Storage is durable, replicated, and shared across all branches of a project. Writes go through safekeepers (Paxos quorum) and land in pageservers, which serve historical reads on demand.
You don't manage storage capacity directly. You see it as a single number per project, and pay only for the bytes you actually persist plus the WAL retained for time-travel.
Branches
A branch is a pointer to a Log Sequence Number (LSN) in storage. Creating a branch is an O(1) database row insert; it does not copy data. Reads from a branch fall through to the parent until the branch diverges, at which point only the delta is stored.
This makes branches:
- Free below the delta. A 100 GB project + 10 small branches is still billed as ~100 GB.
- Fast. Spawning a branch is sub-second.
- Disposable. Run a destructive migration on a branch, throw the branch away, the parent is untouched.
Endpoints
An endpoint is the Postgres process that talks to clients. It pairs with exactly one branch at any moment.
Endpoints are ephemeral compute. They:
- Wake on first packet (typically faster than your client's connect timeout).
- Suspend after 5 minutes of no client activity.
- Are cheap to create and destroy — same cost model as branches.
You can have multiple endpoints on the same branch (e.g., one for the app, one for analytics) — they share the underlying storage and their local caches stay independent.
Scale to zero
Idle endpoints cost zero compute. You pay storage only.
Concretely: a project with one endpoint that gets used for an hour a day costs roughly 1/24th of an always-on equivalent. Storage cost is the same either way.
This is the OG noble-gas idea Kisenon takes its name from — 仙 (sen,
"hermit") for Xenon-54.
Compatibility
Kisenon speaks vanilla Postgres wire protocol. Anything that talks to
Postgres talks to Kisenon: psql, pg_dump, pgbench, drivers in
every language, Drizzle, Prisma, SQLAlchemy, ORMs in general.
There is no Kisenon-specific SQL. Branches and endpoints are managed via the control-plane API or the CLI — never through SQL.