# ASL/STORE-LAYOUT/1 -- On-Disk Store Layout Status: Draft Owner: Architecture Version: 0.1.0 SoT: No Last Updated: 2026-01-17 Tags: [ops, store, layout, filesystem] **Document ID:** `ASL/STORE-LAYOUT/1` **Layer:** O2 -- Operational layout profile **Depends on (normative):** * `ASL-STORE-INDEX` **Informative references:** * `ASL/HOST/1` --- ## 0. Conventions The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, and **MAY** are to be interpreted as in RFC 2119. ASL/STORE-LAYOUT/1 defines a recommended filesystem layout for an ASL store. It does not define semantic behavior. --- ## 1. Purpose Provide a practical, POSIX-friendly on-disk layout that preserves ASL store semantics while remaining compatible with ZFS or other backends. --- ## 2. Minimum Required Components (Informative) An ASL store requires: * Immutable blocks * Append-only log * Sealed snapshots * Deterministic replay Directory layout is an implementation choice. This document defines a recommended layout. --- ## 3. Recommended Domain Layout Per domain, use: ``` /asl/domains// meta/ blocks/ index/ log/ snapshots/ tmp/ ``` All paths are domain-local. --- ## 4. Blocks ``` blocks/ open/ blk_.tmp sealed/ 00/ .blk ff/ .blk ``` Rules: * Open blocks are never visible. * Sealed blocks are immutable. * Sealed blocks are sharded by prefix for filesystem scalability. --- ## 5. Index Segments ``` index/ shard-000/ segment-0001.idx segment-0002.idx bloom.bin shard-001/ ... ``` Rules: * Segments are append-only while open. * Sealed segments are immutable and log-visible. * Shards are deterministic per snapshot. --- ## 6. Log and Snapshots ``` log/ asl.log snapshots/ / ``` Rules: * Log is append-only. * Snapshots pin index and block state for replay. --- ## 7. Temporary and Metadata Paths * `tmp/` is for transient files only. * `meta/` contains domain metadata (DAM, policy, host state). --- ## 8. Non-Goals ASL/STORE-LAYOUT/1 does not define: * Device selection or mount options * Snapshot mechanism (ZFS vs other) * Encryption or key management