...
- Driving principles:
- Minimizing change to the user via the API
- OCFL-isms not bleeding into Fedora API
- Rebuildability
- Compliance with OCFL
- Retain URLs of migrated Fedora resources
- Performance
- Reducing complexity of implementation
Fixity service
- Scheduled fixity service:
- Probably not part of the core, run as a separate service possibly controlled via camel.
- https://docs.google.com/document/d/1bTM0MEoaa88IFaT1zR6YlpFAnLOshjEIKi7miFMm620/edit#heading=h.9zyqk9cxc88
Transaction service
- No change
Query endpoint
Should support the following use cases:
List all resources
List all binary resources
List resources with mimetype TIFF that is a child of X
List resources where created <> x date.
List resources where modified <> x date.
List resources where modified <> x and mimetype in (x,..)
https://docs.google.com/document/d/13C_UhB37docTd8ZTD1ZSKuFhX6q9_3Boo67hjUC2YyM/edit
Versioning
- Support for both:
- version an object on-demand (manual versioning)
- version an object on-change (auto-versioning)
- Support for toggling auto-versioning on/off
- Note: Actively edited objects not captured in an OCFL version directory, but rather in a "cache" directory below the object root. Entries to be indexed in the database .
- There will be a one-to-one correspondence between OCFL versions and mementos.
Bulk ingest
To flavors of pointing a Fedora instance at an OCFL backend.
- via OCFL
- via Fedora OCFLOCFL
- ie "content/.fcrepo" aware
https://docs.google.com/document/d/15QwmyNFMopJW4MHxQNTiOGh_WXsOPr9-yzctGLCgT5k/edit
Import / Export (Migration)
Mapping between LDP and OCFL
...
- Retaining HTTP layer of existing Fedora codebase
- Replacing ModeShape persistence with OCFL storage
- Optimizing reads/lookups with an internal database
- proposed database model: https://docs.google.com/document/d/1MsMfhae3thmNdoFtnTUnII3mr_-OkllRs9PvgnY1fDY/edit
Scaling
- stateless Fedora instancesinstance(s) will scale horizontally
- database can be clustered and scaledclustered and/or moved to cloud database service(RDS,Aurora,etc)
- start with file system, scale out to file system -> cloud object store (s3)
Performance
- Many members: performance should improve significantly since list of members will be supplied by a database index (which should support a degree of in-memory caching). No loading of modeshape nodes required.
- Ingest speeds:
...