XTend Dokumentation
Dunkelmodus aktivieren

XTend Developer Center

Build with XTend today

XTend Maraca Orchestrierung

Dieser Deep-Dive beschreibt loaderlose Maraca App Bundles, die aus einer RMT Quelle nicht nur Komponenten auswählen, sondern eine lauffähige, kernel-orchestrierte Anwendung materialisieren. Die RMT Datei bleibt die Source of Truth für State, Actions, Events, Resources, Surfaces, Hydration, Validation, wiederverwendbare Animationen und Surface Transitions.

Build-Modi

Maraca besitzt fünf unabhängige, aber aufeinander abgestimmte Orchestrierungs-Schalter. auto ist der kompatible Standard, strict ist der CI- und Produktionshärtungsmodus, off erhält den Legacy-Build ohne diese Schicht.

xt maraca plan app.rmt --orchestration strict --kernel strict --hydration strict --validation strict --transitions strict --json
xt maraca build app.rmt --orchestration strict --kernel strict --hydration strict --validation strict --transitions strict --css external --json
xt rmt build app.rmt --bundle maraca --orchestration strict --kernel strict --hydration strict --validation strict --transitions strict --css external --json

orchestration aktiviert das Artefakt xtend.rmt.app-orchestration.v1. kernel bündelt echte RMT Kernel- und Scheduler-Instanzen. hydration steuert runtime render, prerender/hydrate, lazy, visible, idle, manual, none und insulare Hydration über denselben Plan. validation konsumiert xtend.rmt.form-validation.v1 und blockt Actions bei ungültigen Gruppen. transitions behält die kompatible View xtend.rmt.surface-transitions.v1 und konsumiert zusätzlich xtend.rmt.animation-engine.v1 für Presets, Timelines, Interrupt Policy, Reduced Motion und native-first-Ausführung.

Hydration Policies erklärt, welche dieser Werte Template-Ausführung, Fabric-Scheduling, Resumability oder Ownership steuern und wie sie im Build-Report geprüft werden.

RMT Authoring

Validation und Transitions sind native RMT Primitives. Ein typischer Formularschritt deklariert Felder, Regeln, eine Ziel-Action und den Surface-Wechsel nach erfolgreicher Action.

validation product.service.contact {
  mode blocking
  target action product.service.nextContact
  field product.service.name required message "Enter your full name."
  field product.service.email required email message "Enter a valid email address."
  field product.service.channel required message "Choose a support area."
}

animation product.service.stepMotion {
  effect pop
  durationMs 220
  easing "cubic-bezier(.2,.8,.2,1)"
  reducedMotion fade
}

transition product.service.contactToIssue {
  trigger action product.service.nextContact
  from surfaces [product.service.name product.service.email product.service.channel product.service.nextContact]
  to surfaces [product.service.subject product.service.priority product.service.details product.service.backContact product.service.nextIssue]
  use animation product.service.stepMotion
  effect crossfade
  durationMs 240
  easing "ease-out"
  interrupt replace
  reducedMotion fade
  lane transition
}

Der Compiler erzeugt daraus Action Gates, Scheduler-Ziele, Patch-Pläne und Source Maps. Strict Mode bricht ab, wenn Payload Contracts, Resource Ownership, Hydration Policy, Component Capabilities, Transition Targets oder Validation Messages fehlen.

Runtime Graph

Der generierte Bootstrap ist nur Composition Root: Er friert Plan und Konfiguration ein, erzeugt genau eine Instanz von createMaracaPlanRuntime() und injiziert die typisierten Model-, View-, Event-, Surface-, Scheduler- und Host-Ports. xtend-maraca/plan-runtime.mjs ist der einzige Application Controller. RMT State ist die Model-Autorität; der Surface Controller ist die Lifecycle-Autorität. Classic State, DOM, Resource Graph und Browser-Globals sind ausschließlich Projektionen oder sichere Read Models.

Ein Command wird einmal ausgewertet, in genau einer Model-Transaktion angewandt und danach in genau einen Descriptor-/Struktur-Commit projiziert. Anschließend reconciliiert der Event Router die vom Renderer validierten Binding Records; Hydration und Post-Commit-Effects laufen jeweils einmal. State-Subscriber beobachten nur abgeschlossene Transaktionen und starten keine DOM-Arbeit.

Normale App-DOM-Schreibvorgänge laufen ausschließlich über createRmtDomDescriptorRenderer().commit(). Der Renderer installiert keine Application-Listener; nur der Event Router besitzt diese Listener. Es gibt keine normalen innerHTML-, outerHTML-, insertAdjacentHTML- oder document.write-Sinks und keinen Zugriff auf private ShadowRoot-Interna. Components werden nur über öffentliche Attribute, Properties, Events, Slots, CSS Parts und Design Tokens verbunden.

Verantwortlichkeiten der Runtime-Schicht

Die Maraca Runtime ist die clientseitige Controller-Fassade der Architektur. Sie erhält nur Streams und Pläne, die bereits XScaler Preflight und, falls vorhanden, die XScaler-ATC-Übergabe passiert haben. Anwendungskommandos laufen über dispatchCommand(), Stream-Änderungen über dispatchStreamPatch(). Das unveränderliche Model ist über runtime.model lesbar; Renderer-, Validation-, Transition-, Event-, Surface- und Resource-Handles werden nicht veröffentlicht.

Maraca trifft nicht die statische Annahme-/Ablehnungsentscheidung, besitzt keine serverseitige Remote-Surface-Orchestrierung und stellt keine generischen Server-Endpunkte bereit. Wenn eine Remote Surface von einem XSurface Shard Server gestützt wird, konsumiert Maraca den übergebenen Client-Stream und Lifecycle-Signale. Wenn der Server nur generische Endpunkte anbietet, behandelt Maraca sie als Fallback-Daten-/Action-Endpunkte ohne Remote-Surface-Orchestrierungssemantik. Scheduling, Lanes, Diagnostics und Policy-Auswertung werden an RMT-Kernel-/Fabric-Signale delegiert; private Remote-Ausführung bleibt außerhalb des Kernels.

Reports und Bridges

xtend.maraca.report.json enthält Abschnitte für orchestration, kernel, hydration, validation und transitions. Wichtige Felder sind planStatus, runtimeExpectedStatus, fallbackCount, scheduledEndpointCount, strictViolations, hydrationPolicyCount, insularIslandCount, effectCounts, durationRange, animationEngineSchema, animationCount, timelineCount, runtimeModules und redigierte diagnostics.

Im Browser steht dieselbe sichere Runtime-Fassade bereit, die der Bootstrap intern verwendet:

const runtime = window.XTendMaraca.orchestration;
runtime.snapshot();
runtime.model.getState("product.service.form");
runtime.subscribe((snapshot) => console.debug(snapshot));
await runtime.dispatchCommand({ command: "product.service.nextContact", payload: {} });

window.XTendMaraca.kernel.snapshot();
window.XTendMaraca.hydration.snapshot();

stateRuntime und actionRuntime bleiben in 0.6 diagnostizierte Kompatibilitätsaliase; mutable Raw-Adapter sind nicht Teil der Fassade. Die wichtigsten Custom Events sind xtend-maraca:orchestration-boot, xtend-maraca:kernel-boot, xtend-maraca:kernel-schedule, xtend-maraca:state-change, xtend-maraca:dom-commit, xtend-maraca:validation-boot, xtend-maraca:validation-change, xtend-maraca:validation-blocked, xtend-rmt:animation-start, xtend-rmt:animation-phase, xtend-rmt:animation-interrupt, xtend-rmt:animation-complete, xtend-maraca:surface-transition-start, xtend-maraca:surface-transition-complete, xtend-maraca:surface-transition-cancel und xtend-maraca:surface-transition-error.

Effects und Motion Policy

Surface Transitions unterstützen fade, crossfade, slide-left, slide-right, slide-up, slide-down, scale, pop, zoom, flip, rotate, expand, collapse, fade-blur, shared-element, layout-flip und none. Die Dauer kommt aus durationMs, kann aber durch Host-Policy begrenzt werden. xt-ui-effects="none" auf body und prefers-reduced-motion gewinnen vor der RMT Dauer und nutzen die deklarierte reducedMotion Policy.

Die AnimationEngine nutzt zuerst WAAPI und danach CSS-/Instant-Fallback. crossfade überlappt Exit- und Enter-Phase; serielle Transitions warten weiter auf den Exit-Abschluss, bevor die eingehende Surface materialisiert wird. Custom Keyframes sind auf opacity und transform begrenzt; filter ist nur per explizitem Opt-in zulässig.

Demo und lokale Prüfung

Die Realsystem-Demo liegt unter products/rmt-maraca-kernel-orchestration/kernel-orchestration-app.rmt. Sie modelliert ein mehrstufiges Kundenservice-Formular mit x-input, x-select, x-textarea, x-button, Validation Gates, Kernel Scheduling und Surface Transitions.

xt maraca build products/rmt-maraca-kernel-orchestration/kernel-orchestration-app.rmt --out products/rmt-maraca-kernel-orchestration/dist --orchestration strict --kernel strict --hydration strict --validation strict --transitions strict --css external --json
node scripts/run_xtend_tests.js maraca-orchestration maraca-kernel-orchestration maraca-validation maraca-transitions --json

Nutze diese Seite zusammen mit XTend Maraca, RMT Authoring Guide und RMT Language Server.

(c) 2026 - CCS Networks | Powered by XRouter PHP Extension