--- id: jazz-git-boundary kind: architecture title: Jazz and Git Boundary status: active depends_on: - jazz-mapping - runtime-architecture --- # Jazz and Git Boundary Jazz 2 has several properties that resemble a version-control substrate: - every row write creates a retained row version; - row versions record ancestry and can form a graph under concurrent edits; - losing concurrent values remain in history even when last-writer-wins selects the visible field value; - every row version belongs to an environment, schema-hash, and user branch; - schema versions are related through bidirectional migration lenses; - user and environment branches provide hard isolation; - edit authorship and timestamps are queryable; - clients synchronize local persistent state and can wait for named durability tiers. Those properties are useful for Charter's document history, provenance, offline work, drafts, and reproducible context manifests. They do not make Jazz a Git implementation. Jazz user branches are fully isolated and are not merged at query time. Jazz does not expose Git's repository object model of blobs, trees, commits, refs, patches, index, and three-way repository merges. Charter must not translate `userBranch` into “Git branch” in its product language. When a selected source is a Git repository, the source adapter may record portable Git observations such as repository identity, remote, ref, head commit, dirty state, and diff hash. Git remains the authority for Git operations. Jazz remains the authority for Charter coordination state. Charter-level proposals and approvals should be modeled explicitly as rows and immutable manifests. They should not be smuggled into Jazz user branches as if isolation were review workflow.