01 / 12Prism Systems · Cloud-Native & Developer Infrastructure
Your Internal Developer Platform, from golden path to auto-rollback
Backstage-style service catalog, golden-path provisioning, Kubernetes-like scheduling, rolling releases and SLO burn-rate auto-rollback — in one zero-dependency engine with a live simulator.
A live platform you can break
Five services run on a five-node cluster. Ship a bad release and watch the burn-rate alert roll it back, kill a node and watch pods reschedule, or provision a new service from a golden path.
| Service | Team | Version | Ready | RPS | p95 | Errors | Scorecard |
|---|
What's inside the engine
Real algorithms, not mock-ups. The simulator above runs the exact same code you import.
Service catalog
Owners, dependencies, deploy order (topological sort with cycle detection) and blast radius for any service.
Maturity scorecards
Seven weighted checks (owner, docs, on-call, SLO, coverage, runbook, deps) roll up to Gold / Silver / Bronze.
Golden-path templates
Node API, React web, Go worker and Python ML templates render a real Deployment, Service, HPA and PodDisruptionBudget.
Kube-style scheduler
Filter nodes that fit CPU/memory, then score by least-allocated plus anti-affinity spread. Pending pods retry every tick.
Rolling updates
A reconcile loop honours maxSurge and maxUnavailable, so availability never drops below the replica target.
SLO auto-rollback
Multi-window burn-rate alerting (SRE workbook, 14.4× threshold) rolls back to the last healthy revision automatically.
Self-healing
Kill a node: its pods are evicted, rescheduled onto healthy nodes and the event stream records every step.
CLI included
idp new, idp catalog, idp templates and idp simulate give you the same engine from the terminal.
From request to result
Provision
A golden path validates the DNS-1123 name, scaffolds the template, registers the service in the catalog and deploys v1.0.0 to dev.
Schedule
Each replica becomes a pod. The scheduler filters nodes by free CPU/memory and scores them to spread one app across nodes.
Release
A new version triggers a rolling update: surge one new pod, wait for readiness, retire one old pod, repeat.
Observe
Traffic generates RPS, p95 latency and error ratio per service. Burn rate = error ratio ÷ error budget, checked on fast and slow windows.
Roll back
When both windows burn hot on a release, the platform rolls back to the last healthy revision and records it in release history.
System design
Every box is a module in src/. Data flows left to right.
Ship it in your own stack
Zero dependencies. Works in Node.js 18+ and modern browsers.
import { Platform, manifests } from "prism-devportal";
const p = new Platform({ nodes: 4 });
p.on((e) => console.log(e.type, e.msg));
// golden path: catalog + manifests + v1.0.0
const { steps, manifests: yaml } = p.provision({
name: "payments-api", template: "node-api", team: "payments", oncall: true,
});
for (let i = 0; i < 10; i++) p.tick(0.5); // pods become Ready
p.release("payments-api", "1.1.0"); // rolling update
p.release("payments-api", null, { faulty: true }); // bad build…
for (let i = 0; i < 40; i++) p.tick(0.5); // …SLO burn → auto-rollback
console.log(p.snapshot()[0].version, p.stats.rollbacks); // 1.1.0 1$ npx github:krishyaa06/prism-devportal templates
$ npx github:krishyaa06/prism-devportal new orders --template go-worker --team payments > orders.yaml
$ npx github:krishyaa06/prism-devportal catalog examples/catalog.json
$ npx github:krishyaa06/prism-devportal simulate --seconds 40# use the CLI without installing
$ npx github:krishyaa06/prism-devportal --help
# or add the engine to your project
$ npm install github:krishyaa06/prism-devportal
# run the simulator locally
$ git clone https://github.com/krishyaa06/prism-devportal.git && cd prism-devportal
$ npx serve . # then open http://localhost:3000