Subject: Better documenting the BlobStore design

Hi James developers,

I just contributed a documentation PR to better explain the BlobStore
design in James: https://github.com/apache/james-project/pull/3034.

The motivation came from recent discussions around blob metadata and
BlobStoreDAO semantics, including Jean’s concern on PR #2960:
https://github.com/apache/james-project/pull/2960#issuecomment-4241584375

The new documentation tries to clarify:

- the difference between `BlobStore` and `BlobStoreDAO`
- the meaning of James logical `BucketName`
- existing `BlobStore` implementations and decorators
- lower-level `BlobStoreDAO` implementations and wrappers, including AES
and Zstd composition
- metadata conventions and extension points

I hope this helps James developers and extension writers better understand
and leverage the BlobStore abstraction and its extension capabilities.

Feedback is welcome, especially if some parts are still unclear or if other
BlobStore design aspects deserve documentation.

Best regards,
Quan

Reply via email to