Commit Applications

The Commit Application Model is the architectural pattern shared by every application built on the Commit Engine. It defines how an application composes a CommitStore, its domain state, dispatch surface, and platform notifications. Two language profiles exist — a six-layer C++ profile that uses generated function pools, and a five-layer Python profile that does not need them.

The walkthroughs below are concrete instances of that single Model, on different presentation tiers. They are not products in their own right — read them as worked examples.

The Model

Commit Application Model

The pattern itself. Application Context, four pillars, dispatch, notification contract, dual-layer contract, generic-versus-domain instances, lineage. Start here before reading the walkthroughs.

Walkthroughs

cdbe

The minimal, generic incarnation of the pattern — a PySide6 desktop application that opens any commit database with no domain, no Kibo output, no business logic. The central widget is itself a generic component (DSDocumentsCommitStore) driven by runtime introspection. cdbe is essentially dsviper-components wired up into a Qt main window. Read this walkthrough first to see the pattern stripped of its domain — the bare skeleton of the Application Context.

ge-py

Graph Editor — PySide6 desktop application demonstrating dsviper end-to-end with a graph database visualization. Built on the Qt Widgets infrastructure (dsviper-components). Re-introduces the domain on top of the cdbe skeleton: a DSM model, Kibo-generated typed accessors, business functions, and a Context class that owns the domain state.

ge-qml

Graph Editor — QML port of ge-py, built on the Qt Quick infrastructure (dsviper-components-qml). Same value chain, same business logic, same CommitStore facade — the UI is QML driven by Python QObject models registered as QML context properties.

web-cdbe

Flask web application — a generic Commit Database Editor. Pure HTML5, no JavaScript. Same model-agnostic posture as cdbe, ported to a server-rendered HTML/CSS surface.