CX · Reference guidecx-platform-xap
PlaygroundDownloadsAboutv0.18.0-pre.1

cx-platform-xap

the application host, compose, dist, schema, market, the reference deployments

Why reach for it

Features compose into an application, and the composition is an algebra. cx-platform-xap is the host: a feature's grammar — its nouns, verbs and requirements — is a data document, two features compose into one grammar whichever order you name them in, and the host serves the composed grammar to a terminal, a browser and an agent through one cascade.

Every intent commits through one synchronous, journal-folded path: the bus calls the policy decision once, appends to the hash-chained journal and re-folds state, and a rejected intent is a value on the failure channel rather than a crash. Reads are a deterministic fold over the log. Agents are peers — they emit the same intents a human client does, gated by the same authorization dial.

The XAP overview and its four demo pages are the ladder: one capability, surfaced through progressively more clients, each rung turning on exactly one more subsystem, every page embedding the demo's real source and its recorded output. Sealing, publishing and installing a feature is xap-distribution; the platform chapter of the primer is projected from this repository's composition and deployment-topology pages.

What it gives you

The module below is the runtime a program imports. Beside it the registry carries this repository's three conformance suites — composition, schema-as-data and the on handler surface — and the distribution natives; the corpus link at the foot of the page holds them all.

module import it as where it lives reference
xap [?lib 'cx-platform/xap'] Ring 1 · the platform group xap reference

Try it

Two features composed. Each declares a highlight verb of its own; composition keeps both, because a verb is qualified by the feature that declares it — four verbs in the composed grammar, none lost, none renamed.

prog.cx

        [?lib 'cx-platform/xap' as=xap]
[?let [= $chart
  [feature name=chart
   [nouns [noun name=viewport singular=true [field name=center type=geo-point]]]
   [verbs
    [verb name=highlight effect=arrange [intent [do :highlight]] [reads viewport]]
    [verb name=set-waypoint effect=act scope=shared consequence=reversible [intent [do :set-waypoint]] [writes viewport]]]
   [requirements [requirement kind=functional as=user traces=highlight [want 'to mark a spot'] [so 'I can find it']]]]]
 [= $strikes
 [feature name=strikes
  [nouns [noun name=strike [field name=pos type=geo-point] [field name=at type=instant]]]
  [verbs
   [verb name=highlight effect=arrange [intent [do :highlight]] [reads strike]]
   [verb name=list-strikes effect=observe [intent [do :list-strikes]] [reads strike]]]
  [requirements [requirement kind=functional as=user traces=highlight [want 'to see strikes'] [so 'I avoid them']]]]]
 [= $g [$xap:compose $chart $strikes]]
 [$count $g//verb]]
      
        $ cx prog.cx
4
      

Fixture xap-compose-006-same-named-verbs-coexist in deps/cx-platform-xap/conformance/xap/xap-compose.cxd — replayed against this cx when the page was built.

Status

The host builds on the widest set of platform repositories on this site — the wire, mail, identity, the store, the database drivers, the fabric and the session layer — and the figure draws every one of them from the registry's own row.

fact as the registry records it
ships as binary
status extracted
pinned at c5ec39c5b
builds on cx-platform-net, cx-platform-mail, cx-platform-identity, cx-platform-store, cx-platform-db, cx-platform-fabric, cx-platform-xsp
built on by cx-platform-agent
bundled modules 1
BUILDS ON THIS REPOSITORY · SHIPS BUILT ON BY cx-platform-net cx-platform-mail cx-platform-identity cx-platform-store cx-platform-db cx-platform-fabric cx-platform-xsp cx-platform-xap xap cx-platform-agent DRAWN FROM registry/repos.cxd's pins= COLUMN AND registry/modules.cxd WHEN THIS PAGE WAS BUILT
Fig. — what cx-platform-xap plugs into: the repositories it builds on (left), the modules it ships (centre), the repositories that build on it (right) · drawn from registry/repos.cxd, deps.cxd and registry/modules.cxd when this page was built