Executive Summary
JIL Sovereign's evidentiary infrastructure enforces a legal hold at two independent layers that never trust each other's determination. An application-tier legal-hold service tracks hold assertions scoped to matters and their associated records and exposes hold state through its own API. Separately, the storage-tier write-once-read-many (WORM) daemon maintains its own hold table, populated from hold-and-release events but stored and queried entirely within its own transactional boundary. Every delete or retention-expiry attempt at the storage tier re-derives current hold status from that storage-tier table - never from a hold-status value merely asserted by the calling application.
Because the two tiers do not share a trust boundary, a bug or compromise confined to one tier cannot alone authorize a wrongful deletion. A delete proceeds only when the application tier and the storage tier independently concur that no hold applies to the record in question.
Problem Statement
Failure to preserve electronically stored information under a legal hold is a well-established basis for sanctions in civil litigation - Federal Rule of Civil Procedure 37(e), amended in 2015 specifically to address failures to preserve ESI, and the line of cases following Zubulake v. UBS Warburg establish that a preservation duty attaches once litigation is reasonably anticipated and that failing to honor it can result in adverse-inference instructions or other sanctions. In practice, the compliance failure is rarely "we had no hold policy" - it is that a hold existed in one system while a different code path deleted the underlying data anyway.
Conventional legal-hold implementations enforce the hold at exactly one layer, most often the application layer: a flag or matter association checked before a delete API call is permitted. Storage-tier retention controls (object-lock, WORM) typically exist as a separate, disconnected mechanism not sourced from the same hold determination - producing two hold registries that can drift out of sync. That drift, not the absence of a policy, is what produces defensible spoliation incidents when a batch job, an administrative script, or a compromised application server bypasses the single enforcement point.
Why Single-Layer Enforcement Is Insufficient
- Application-only hold flags (Exterro, Relativity Legal Hold): enforce the hold in the app layer only; a direct storage-layer write or a bypassed API call is not independently checked.
- Storage-only object-lock (AWS S3 Object Lock, NetApp SnapLock): immutability is set per-object, generally by manual or scripted action, with no application-level matter/reference-counted hold orchestrating it.
- Records-management hold registers (Iron Mountain, Smarsh): decoupled from live operational storage; the register can say "held" while production storage has no corresponding technical control at all.
Technical Architecture
Two Independent Enforcement Layers
| Layer | Function | Source of Truth |
|---|---|---|
| Application-tier hold service | Tracks reference-counted hold assertions per matter/record; exposes hold state; generates hold and release events | Matter-management workflow |
| Storage-tier WORM daemon | Maintains its own hold table, consumed from the same events but stored independently; re-derives hold status on every delete/expiry call | Storage tier's own transactional record |
Delete-Path Enforcement
When any delete or retention-expiry operation reaches the storage tier - whether initiated through the ordinary application API, a scheduled retention-expiry job, or an administrative script - the storage-tier daemon issues a fresh query against its own hold table before beginning any destructive operation, regardless of what hold status the calling code asserts. A destructive operation proceeds only if the storage tier's own independently maintained table confirms no hold applies.
Why This Closes the Bypass Vector
Because the two tiers do not share a trust boundary, a bug or compromise confined to one tier cannot alone authorize a wrongful deletion. Both the application-layer check and the storage-layer hold table would have to fail simultaneously and independently for a held record to be deleted - a materially different risk profile than a single-layer design where compromising one component is sufficient.
Relationship to Sealed Evidentiary Bundles
When a compliance-review evidentiary bundle references underlying source records, this dual-layer hold mechanism is the enforcement substrate that keeps those source records from being deleted out from under an active litigation or regulatory inquiry. The hold's storage-tier enforcement operates independently of - and beneath - whatever bundle-sealing or attestation logic references the record, so a hold placed after a bundle is generated still protects the underlying source data the bundle was built from.
Prior Art Differentiation
| Approach | Enforcement Layer(s) | Storage Tier Re-Derives Hold Status? | Shared Trust Boundary? |
|---|---|---|---|
| Exterro / Relativity Legal Hold | Application only | No | N/A - single layer |
| AWS S3 Object Lock / NetApp SnapLock | Storage only, manually or script-set | N/A - no app-layer hold to check against | N/A - single layer |
| Iron Mountain / Smarsh records hold register | Records-management register, decoupled from live storage | No - not technically enforced at storage | Yes - drift-prone |
| JIL dual-layer legal hold | Application + storage | Yes, on every call | No - independently enforced |