The following diagram shows the primary components that make up Fedora 4, and how they interact with each other and with external clients such as the Java client currently being developed, or a Hydra application.
- Authentication: authenticating requests is typically handled by the servlet container running the Fedora 4 webapp, and can usually be configured to support a wide range of authentication types.
- Authorization: there are currently modules for role-based authorization and XACML authorization, and custom authorization modules can be created to support other authorization types.
- PID Minter: there are currently PID minter modules that generate random UUID identifiers, or retrieve PIDs from an external web service, and custom PID minter modules can be created for other PID minting scenarios.
- Sequencers: the Modeshape API allows creating sequencers which are tightly-coupled asynchronous modules which can be configured to automatically process new and updated content.
- LevelDB: the default configuration uses LevelDB storage, but Infinispan supports several other storage mechanisms.
- Custom Indexer: the indexer currently has modules for Solr and Elasticsearch indexing, triplestore synchronization using SPARQL Update, and serializing JRC/XML to disk. Custom indexer modules can be created to support syncing with other systems.