S3 Lifecycle Rules on a Content-Addressed Store: Time as a First-Class Dimension

Lifecycle rules are the first feature that makes momo delete data on a schedule rather than on request β€” which turns age, storage class, and delete markers into correctness problems. This post walks through the expiration and transition engine, why a background worker is the only safe place to run it, and how expiration composes with versioning’s delete markers.

πŸ› ARCHITECTUREβ€’STORAGEβ€’October 21, 2026β€’5 min

S3 Versioning on a Content-Addressed Store: Two Kinds of Identity

Why S3 versioning and content-addressed storage seem to conflict β€” mutation identity vs content identity β€” and how momo keeps both: UUIDv4 version records pointing at deduplicated blobs, delete markers that shadow without deleting, and pagination that can only be computed after sorting. Teaches: the real semantics backup tools depend on, and where the version chain deliberately stops being distributed.

πŸ› ARCHITECTUREβ€’STORAGEβ€’October 11, 2026β€’6 min

R4: momofs β€” POSIX Core Over the CAS Store

The R4 POSIX core: inodes as content-addressed manifests, files as blobs, atomic rename, hardlinks, permission enforcement β€” a filesystem on momo.

πŸ› ARCHITECTUREβ€’MOMOFSβ€’August 27, 2026β€’7 min

CAS: Content-Addressable Storage and Deduplication

Identify every object by its SHA-256 content hash β€” server-side dedup, verify-on-read, and a path that later mounted a filesystem. Teaches: content addressing principles, single write chokepoint, Bolt/Sentinel patterns.

πŸ› ARCHITECTUREβ€’STORAGEβ€’March 11, 2026β€’5 min