Architektur
Was tatsächlich auf Ihren Systemen läuft — für die Engineers, die abwägen, ob sie dies einführen sollen.
Architektur
Eine praxisnahe Sicht darauf, was auf Ihren Maschinen läuft, wenn Sie ObjectOS bereitstellen, welche Daten Ihr Netzwerk verlassen und welche nicht.
Das mentale Modell besteht aus zwei dünnen Schichten:
- Metadaten — Pakete aus Objekten / Views / Actions / Flows / Agents. Größtenteils vom AI Builder gegen eine sandboxed Tool-API geschrieben; teils von Hand bearbeitet, stets versionskontrolliert und auditiert.
- Eine einzige Node.js-Laufzeit, die diese Metadaten in eine funktionierende Anwendung interpretiert — REST-API, Console-UI, Berechtigungen, Jobs, AI-Tools — alles in einem Prozess, der mit Ihrer Datenbank kommuniziert.
Kein Codegenerierungsschritt, keine Deploy-Pipeline zwischen „Benutzer hat beschrieben, was er möchte" und „es ist live". Die Laufzeit lädt die neuen Metadaten nach einer HITL-Freigabe per Hot-Reload.
Was Sie bereitstellen
Ein Node.js-Prozess pro ObjectOS-Instanz. Das ist alles.
┌─────────────────────────────────────────────────────┐
│ ObjectOS process │
│ ┌───────────────────────────────────────────────┐ │
│ │ HTTP dispatcher (/ · /api · /_console …) │ │
│ ├───────────────────────────────────────────────┤ │
│ │ Per-project ObjectKernel (LRU cached) │ │
│ │ ├─ Auth (Better Auth) │ │
│ │ ├─ Security (RBAC + row-level + field) │ │
│ │ ├─ ObjectQL (data engine, generates SQL) │ │
│ │ ├─ REST API generator │ │
│ │ └─ Capabilities loaded per artifact │ │
│ │ (audit, storage, jobs, queue, AI …) │ │
│ └───────────────────────────────────────────────┘ │
└──────────┬──────────────────────────────────────────┘
│
▼
Your business database
(Postgres / MySQL / SQLite / Turso / MongoDB)Es hat die Komplexität einer einzigen statisch gelinkten Binärdatei. Kein Sidecar, kein Kafka, keine separate Cache-Schicht erforderlich. Fügen Sie diese hinzu, wenn Sie sie brauchen; zahlen Sie nicht am ersten Tag dafür.
Wo Ihre Daten liegen
| Daten | Liegen in | Verlassen Ihr Netzwerk? |
|---|---|---|
| Geschäftsdatensätze | Ihrer Datenbank | Nein |
| Benutzerkonten, Sitzungen, OAuth-Tokens | Ihrer Datenbank | Nein |
| Audit-Log | Ihrer Datenbank | Nein |
| Einstellungen, API-Schlüssel, Secrets | Ihrer Datenbank / Secret-Manager | Nein |
| Hochgeladene Dateien | Ihrer Festplatte oder Ihrem S3/R2-Bucket | Nein |
Die kompilierte App-Definition (objectstack.json) | Einer Datei auf der Festplatte oder abgerufen von Ihrer Control Plane | Optional |
ObjectOS telefoniert nicht nach Hause. Keine Telemetrie. Keine Lizenzprüfung. Wenn Sie den Internetzugang vollständig kappen, läuft es unbegrenzt weiter. Siehe Air-gapped.
Wie eine Anfrage bedient wird
1. Ingress / TLS termination (your load balancer)
2. HTTP dispatcher (security headers, request id)
3. Hostname → project resolution (cached, TTL configurable)
4. Get or build per-project kernel from LRU
5. AuthPlugin — session cookie, bearer token, or API key
6. SecurityPlugin — RBAC + row-level + field-level checks
7. Route handler — generated REST, declarative action, or custom
8. Data driver — ObjectQL compiles to SQL / Mongo query
9. Response with X-Request-Id propagatedDie Schritte 4–8 werden typischerweise in < 5 ms ausgeführt, sobald der Kernel warm ist.
Die drei Schichten (nur relevant, wenn Sie integrieren)
Die meisten Kunden stellen nur ObjectOS bereit. Die anderen beiden Schichten existieren, falls Sie wissen möchten, woher das Artefakt stammt:
| Schicht | Was es ist | Wo es läuft |
|---|---|---|
Framework (@objectstack/*) | Open-Source-Kernel, ObjectQL, Plugins, Treiber | npm — zur Build-Zeit eingebunden |
| Control Plane (optional) | Veröffentlicht kompilierte objectstack.json-Artefakte; Sie können die gehostete ObjectStack Cloud nutzen, eine eigene betreiben oder sie ganz weglassen | Ihre CI, unsere Cloud oder Ihr Laptop |
| ObjectOS | Die Laufzeit, die Sie betreiben | Ihre Infrastruktur |
Wenn Sie eine einzelne App ausliefern, benötigen Sie keine Control Plane —
kompilieren Sie objectstack.config.ts → dist/objectstack.json in Ihrer CI und
liefern Sie das JSON im Image aus. Wenn Sie einen internen App-Marketplace
mit vielen Tenants und Apps betreiben, ist die Control Plane der Ort, an dem der
Katalog liegt.
Boot-Modi
| Modus | Wann | Wie |
|---|---|---|
| Standalone | Einzelne App, Entwicklung, Evaluierung, Air-gapped, die meisten Produktionsbereitstellungen | pnpm dev oder dist/objectstack.json von der Festplatte ausführen |
| File-backed | Produktion mit extern verwalteten Artefakten | OS_ARTIFACT_PATH=/path/to/objectstack.json setzen |
| Cloud-connected | Multi-Tenant- / Multi-App-Bereitstellungen, gespeist von einer Control Plane | OS_CLOUD_URL + OS_CLOUD_API_KEY setzen |
Der Modus wird automatisch anhand von Umgebungsvariablen erkannt.
Performance-Eigenschaften
| Metrik | Wert |
|---|---|
| Kaltstart (Prozess hochgefahren, bereit für Traffic) | ~1 Sekunde |
| Kernel-Warmup (erste Anfrage an ein Projekt) | 50–300 ms je nach Capabilities |
| Latenz bei warmer Anfrage (CRUD via REST) | typischerweise < 10 ms + Datenbanklatenz |
| Speicherbedarf | ~150 MB Basis; ~10–30 MB pro aktivem Projekt-Kernel |
| Gleichzeitige Projekte pro Instanz | Begrenzt durch OS_KERNEL_CACHE_SIZE (Standard 32) |
Warum diese Form
- Ein Node-Prozess, keine Sidecars → passt in ein
docker run, passt in eine systemd-Unit, passt in eine Lambda-ähnliche Umgebung. - Per-Projekt-Kernel, LRU-gecacht → eine Instanz kann viele kleine Apps bedienen, ohne bei jeder Anfrage die Warmup-Kosten zu tragen.
- Generierte APIs auf Basis deklarierter Metadaten → es gibt keinen Codegen- Schritt in Ihrer CI, kein Client-SDK zum Veröffentlichen; die API entspricht Ihrem Datenmodell konstruktionsbedingt.
- Alle Capabilities sind optionale Plugins → die Image-Größe skaliert mit dem, was Sie tatsächlich nutzen.
Wie es weitergeht
- Production Readiness — Checkliste, bevor Sie es echtem Traffic aussetzen.
- Runtime Configuration — Verdrahtung von Datenbanken, Caches und Secrets.
- Runtime Capabilities — welche optionalen Pakete existieren und was sie ermöglichen.
Schnellstart
Von null zu einem laufenden ObjectOS — eine CLI installieren, einen Befehl ausführen, schon haben Sie eine App.
Bereitstellung
Wählen Sie, wie Sie ObjectOS betreiben — Docker zur Evaluierung, Kubernetes für hochverfügbare Produktionsumgebungen oder ein Air-Gapped-Bundle für Netzwerke ohne ausgehenden Datenverkehr.