# vanlightly/s3-wal-collection architecture

> Architecture diagram of the GitHub repository vanlightly/s3-wal-collection, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vanlightly/s3-wal-collection
- Repository: https://github.com/vanlightly/s3-wal-collection

## Overview

This repository is a research collection of TLA+ specifications for WAL designs using object storage, not a running WAL service. The principal workflow is to review the collection’s criteria and design categories, then inspect a model to understand its protocol. The README documents single-writer, multi-writer, and not-quite-WAL designs, plus proposals that are not yet modeled. Relationships below reflect documented links only; source excerpts were unavailable, so model internals and execution behavior are not inferred.

Main entry points: [`README.md`](https://github.com/vanlightly/s3-wal-collection/blob/main/README.md) (Criteria and index), [`slatedb/SlateDBWAL.tla`](https://github.com/vanlightly/s3-wal-collection/blob/main/slatedb/SlateDBWAL.tla) (SlateDB WAL), [`slatedb/SlateDBWAL_CAS.tla`](https://github.com/vanlightly/s3-wal-collection/blob/main/slatedb/SlateDBWAL_CAS.tla) (SlateDB CAS), [`opendata/BufferAsWAL.tla`](https://github.com/vanlightly/s3-wal-collection/blob/main/opendata/BufferAsWAL.tla) (BufferAsWAL)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Design catalog"]
  node_readme["Criteria and index<br/>[README.md]"]
end

subgraph group_single["Single-writer"]
  node_slatedb["SlateDB WAL<br/>[SlateDBWAL.tla]"]
  node_slatedbcas["SlateDB CAS<br/>[SlateDBWAL_CAS.tla]"]
  node_bufferwal["BufferAsWAL<br/>[BufferAsWAL.tla]"]
end

subgraph group_multi["Multi-writer"]
  node_oswald["OSWALD<br/>[Oswald.tla]"]
  node_continuity["Continuity<br/>[Continuity.tla]"]
  node_walgit["Walgit<br/>[Walgit.tla]"]
end

subgraph group_other["Not quite WAL"]
  node_buffer["OpenData Buffer<br/>[Buffer.tla]"]
end

node_reader(("Engineer"))

node_reader -->|"reviews criteria"| node_readme
node_readme -->|"links to"| node_slatedb
node_readme -->|"links to"| node_slatedbcas
node_readme -->|"links to"| node_bufferwal
node_readme -->|"links to"| node_oswald
node_readme -->|"links to"| node_continuity
node_readme -->|"links to"| node_walgit
node_readme -->|"links to"| node_buffer
node_reader -->|"inspects model"| node_slatedb
node_reader -->|"inspects model"| node_slatedbcas
node_reader -->|"inspects model"| node_bufferwal
node_reader -->|"inspects model"| node_oswald
node_reader -->|"inspects model"| node_continuity
node_reader -->|"inspects model"| node_walgit
node_reader -->|"inspects model"| node_buffer

click node_readme "https://github.com/vanlightly/s3-wal-collection/blob/main/README.md"
click node_slatedb "https://github.com/vanlightly/s3-wal-collection/blob/main/slatedb/SlateDBWAL.tla"
click node_slatedbcas "https://github.com/vanlightly/s3-wal-collection/blob/main/slatedb/SlateDBWAL_CAS.tla"
click node_bufferwal "https://github.com/vanlightly/s3-wal-collection/blob/main/opendata/BufferAsWAL.tla"
click node_oswald "https://github.com/vanlightly/s3-wal-collection/blob/main/oswald/Oswald.tla"
click node_continuity "https://github.com/vanlightly/s3-wal-collection/blob/main/cursor/Continuity.tla"
click node_walgit "https://github.com/vanlightly/s3-wal-collection/blob/main/walgit/Walgit.tla"
click node_buffer "https://github.com/vanlightly/s3-wal-collection/blob/main/opendata/Buffer.tla"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_readme toneBlue
class node_slatedb,node_slatedbcas,node_bufferwal toneAmber
class node_oswald,node_continuity,node_walgit toneMint
class node_buffer toneRose
class node_reader toneIndigo
```

## Components

### Design catalog

- [Criteria and index](https://github.com/vanlightly/s3-wal-collection/blob/main/README.md): `README.md`

### Single-writer

- [SlateDB WAL](https://github.com/vanlightly/s3-wal-collection/blob/main/slatedb/SlateDBWAL.tla): `slatedb/SlateDBWAL.tla`
- [SlateDB CAS](https://github.com/vanlightly/s3-wal-collection/blob/main/slatedb/SlateDBWAL_CAS.tla): `slatedb/SlateDBWAL_CAS.tla`
- [BufferAsWAL](https://github.com/vanlightly/s3-wal-collection/blob/main/opendata/BufferAsWAL.tla): `opendata/BufferAsWAL.tla`

### Multi-writer

- [OSWALD](https://github.com/vanlightly/s3-wal-collection/blob/main/oswald/Oswald.tla): `oswald/Oswald.tla`
- [Continuity](https://github.com/vanlightly/s3-wal-collection/blob/main/cursor/Continuity.tla): `cursor/Continuity.tla`
- [Walgit](https://github.com/vanlightly/s3-wal-collection/blob/main/walgit/Walgit.tla): `walgit/Walgit.tla`

### Not quite WAL

- [OpenData Buffer](https://github.com/vanlightly/s3-wal-collection/blob/main/opendata/Buffer.tla): `opendata/Buffer.tla`

### Other components

- **Engineer**

## Connections

- Engineer → Criteria and index: reviews criteria
- Criteria and index → SlateDB WAL: links to
- Criteria and index → SlateDB CAS: links to
- Criteria and index → BufferAsWAL: links to
- Criteria and index → OSWALD: links to
- Criteria and index → Continuity: links to
- Criteria and index → Walgit: links to
- Criteria and index → OpenData Buffer: links to
- Engineer → SlateDB WAL: inspects model
- Engineer → SlateDB CAS: inspects model
- Engineer → BufferAsWAL: inspects model
- Engineer → OSWALD: inspects model
- Engineer → Continuity: inspects model
- Engineer → Walgit: inspects model
- Engineer → OpenData Buffer: inspects model
