◆PRISMDevPortal

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.

Zero dependenciesReal K8s YAMLMulti-window burn rateLive simulatorCLI + ESM API
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.

paused
Cluster · nodes & pods (color = service, ring = version)
Error ratio · selected serviceburn 0×
p95 latency · rps
Service catalog
ServiceTeamVersionReadyRPSp95ErrorsScorecard
Golden path · new service
Pick a name + template, then provision. The pipeline scaffolds, registers and deploys v1.0.0.
Release history
Platform events
Generated manifest
Features

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.

How it works

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.

Architecture

System design

Every box is a module in src/. Data flows left to right.

provisionregisterv1.0.0rolloutpodsrollbackDEVELOPERPortal UIsimulatoridp CLInew · catalogPLATFORMGolden pathstemplatesCatalogscorecardsRelease ctrlhistoryRUNTIMESchedulerfilter + scoreDeploymentsrolling updateRELIABILITYMetricsrps · p95 · errSLO engineburn rate
Use it

Ship it in your own stack

Zero dependencies. Works in Node.js 18+ and modern browsers.

example.js
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
terminal
$ 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
terminal
# 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