Interface ObjectStore

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    
    public interface ObjectStore
     implements AutoCloseable
                        

    Vendor-neutral object storage (HEL-236). The contract is S3-COMPATIBLE semantics — immutable whole objects under string keys, prefix listing, copy-not-rename — expressed without any provider type. Implementations: InMemoryObjectStore (reference/testing, this module) and S3ObjectStore (pkgrovekit-storage-s3, AWS SDK v2 — MinIO and Amazon S3 tested).

    Provider-varying behavior is DISCOVERABLE via capabilities; workflows that need a capability call StorageCapabilities.require BEFORE moving data and fail with a typed CapabilityRejectedException (HEL-236 capability model).

    NOTHING here assumes atomic rename — object storage has none. Atomicity is built from what S3 actually gives: unique staged keys, server-side copy, and a conditional (if-absent) manifest PUT as the single commit point — see StagingArea.