Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

2019-2020 Technical Roadmap

Excerpt Include
2019 - 2020 Technical Priorities
2019 - 2020 Technical Priorities
nopaneltrue

2017-2018 Technical Roadmap

Expand

Formalize the core Fedora services Application Programming Interface (API)

This priority is to clearly define the core services that Fedora promises as a standards-based RESTful API, accompany this API with any necessary domain-specific ontologies, and provide a compatibility test suite. Outstanding issues can be found on GitHub.

Align the current Fedora implementation with the API specification

Once the API specification is complete, the current Fedora implementation will need to be updated to fully align with the specification. This work will result in a 5.x Fedora release based on our move to semantic versioning.

Support alternate Fedora implementations

One of the goals of the API specification is to allow the community to experiment with different back-end Fedora implementations to address different use cases. We will support and encourage community members as they experiment along these lines.

2016-2017 Technical Roadmap

Expand

Excerpt Include
2016 - 2017 Technical Priorities
2016 - 2017 Technical Priorities
nopaneltrue

2015-2016 Technical Roadmap

Expand

Excerpt Include
2015 - 2016 Technical Priorities
2015 - 2016 Technical Priorities
nopaneltrue

Previous Technical Roadmap Items

Expand


Section
Info

See here for continuing discussion of the more immediate priority focus.

Candidate Features for Fedora 4.x

 
Section
Column
width32%


Column


Advanced Tables - Table Plus
enableSortingfalse
Priority 1


Currently Supported FeaturesDesignCoreNon-core
AlphaBeta
4.0Use Cases
AuthN/Z
3 to 4 Upgrade
 

x
x
(tick)
 b3,4,5


Expand
titleAuthorization Use Cases

Content by Label
showLabelsfalse
max20
showSpacefalse
cqllabel = "uc-authz"
labelsuc-authz

AuthN/Zdesign x b1,3,4,6,7
Asynchronous storage APIdesign x  
 

(tick)


Expand
 b2,3Batch Operations x x Clustering x xb5,6Policy-driven Storagedesign x xb1,2Relationships API x   
titleBackup Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-backup"
labelsuc-backup


Clustering
x
(warning)
  • Consistent deployment
  • REST-API support against master node
Content Modeling - Structural
x
(warning)


Expand
titleContent Modeling Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-content-modeling"
labelsuc-content-modeling


Managed External Datastreams

x(tick)


Expand
titleExternal Storage Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-storage-external"
labelsuc-storage-external

Self-healing Storage  xx 
  b2,4,6,7

(tick)


Expand
titleLarge Files Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-large-files"
labelsuc-large-files


Search

design
x(tick)


Expand
titleSearch Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-search"
labelsuc-search


Transactions
x
(tick)


Expand
titleTransactions Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-txns"
labelsuc-txns


Triplestoredesign
x(tick)


Expand
titleTriplestore Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-triplestore"
labelsuc-triplestore


Versioning
x
(tick)


Expand
titleVersioning Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-versioning"
labelsuc-versioning


Non-Functional: Easy Deployment


(tick)
Non-Functional: Performance -
Single-node 



(warning)


Expand
titlePerformance Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-performance"
labelsuc-performance








Post-4.0 Priority 1
Transactions x x Triplestoredesign  x b2,4Versioning x  b7      Priority 2
FeaturesDesignCoreNon-core
Alpha Asynchronous storage Implementation x   CMIS  xx Content Modeling x  b7Disseminator-like Functionality  x  Human-readable Filesystem Storage  x  Managed External Datastreams  x  Metrics x x 

Multi-tenancy

 x   OAI-PMHdesign  x  ORCID Support  x  

Search

design x b4WebDAV  xx 

 

 

Column
IntegrationsCoreNon-coreAlpha
Hydra Integration xx
Islandora Integration xx

 

4.0 Beta (July - December 2013)

Beta must address fundamental set of requirements, including:

  • Authorization
  • Policy-driven storage and asynchronous storage systems
  • Durability
  • Performance for large scale ingest
  • Auditing
  • On-the-fly configuration

During this phase, the project team will also work closely with several early adopter institutions to ensure Fedora 4 supports their needs.

At the end of this phase, the project team should deliver a stable, ready-for-testing Fedora 4 "beta". The beta should implement all core Fedora principles, a near-final REST API, support Hydra and Islandora use cases, support the "80%" use case for Fedora, and have a clear candidate migration path from Fedora 3.

At DLF 2013, the software should be ready for institutions to begin evaluating the software as a replacement for a Fedora 3 install, and provide meaningful feedback about enhancements, consistency, and deployment woes for the next phase of the project. 

4.0 Alpha (January - July 2013)

Select a platform for Fedora 4 development. 

Define Success Criteria for Fedora 4, particularly:

  • Robust, modular, minimal Core Fedora.
  • Considers the digital preservation/durability interest and balances that against other interests, such as scalability.
  • Flexible, Extensible, Durable Architecture is the foundation.
  • Able to describe to a CIO why Fedora needs to be a foundational component of the enterprise system.
  • Preliminary architectural ideas appropriate to the architectural roadmap for 3.x+4 by the end of June

Develop and validate features around Fedora 3.x pain points, including:

  • Horizontal scale-out

  • High Availability

  • Web-friendly APIs 

At the end of this phase, the project team should deliver an alpha-level prototype of Fedora 4. This prototype should demonstrate the core Fedora 4 principles, API design, and support for the hybrid use case. In addition, Hydra and Islandora should have functional builds that work against the Fedora 4 API. 

At Open Repositories 2013, the software should be in a state that external developers can successfully install the software and provide meaningful feedback about additional user stories and technical requirements for the next phase of the project.

Fedora Futures Requirements Gathering (through December 2012)

Many members of the Fedora community- - both developers and stakeholders - -have expressed a desire to refresh the product's vision, and to produce an evolutionary short- and mid-term development roadmap for the repository. While Fedora's conceptual architecture is proven and still sound, the underlying technology needs to become more responsive to a wide range of current and emerging requirements, more performant and scalable, and capable of advancing in a more agile development framework. The feeling is that this work would require considerably more effort and a different approach than is possible using our current model of volunteer developer contributions led and coordinated by the DuraSpace organization.

At OR12, a group of Fedora stakeholders self-organized to plan some post-conference, informal discussions about "Fedora Futures". That group, encompassing representation from some large institutions, major projects like Hydra, Islandora, APTrust, and eSciDoc, plus DuraSpace, met in September 2013 for an initial conversation to explore these topics.  The outcome was very positive,  the group found a lot of common ground and interest on possible approaches to improving Fedora. 

Initial use cases and user stories that we want to ensure Fedora 4 will be prepared to address were collected at Use Cases. The Phase I team synthesized the collected use cases into a series of user stories for alpha development.

...

4.0Use Cases
3 to 4 Upgradedesign
x


Expand
titleF3 to F4 Upgrade Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-3to4-upgrade"
labelsuc-3to4-upgrade


Audit Servicedesignx


Expand
titleAudit Service Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-audit"
labelsuc-audit


Managed External Datastreams - Indexing

x

Asynchronous storage APIdesignx


Expand
titleAsync Storage Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-storage-async"
labelsuc-storage-async
 


Asynchronous storage Implementation
x


Expand
titleAsynchronous Storage Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-storage-async"
labelsuc-storage-async


LDP-Paging
x


Web Access Control

x

API Partitioning
x








Post-4.0 Priority 2 FeaturesDesignCoreNon-core4.0
Batch Operations
x


Expand
titleBatch Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-batch"
labelsuc-batch
 



CMIS

x

Content Modeling - Services and Validation




Expand
titleContent Modeling (extended) Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-content-modeling-ext"
labelsuc-content-modeling-ext


Disseminator-like Functionality

x


Expand
titleObject Services Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-object-services"
labelsuc-object-services


Human-readable Filesystem Storage

x

Metrics
x


Expand
titleAudit Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-audit"
labelsuc-audit


Multi-tenancy


x


Expand
titleMulti-tenancy Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-multi-tenancy"
labelsuc-multi-tenancy


OAI-PMHdesign
x

ORCID Support

x

Policy-driven Storagedesignx


Expand
titlePolicy-Driven Storage Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-storage-policy"
labelsuc-storage-policy


Relationships API
x


Self-healing Storage

x

WebDAV

x

Non-Functional: Performance - Clustered




Expand
titleClustering Performance Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-clustering"
labelsuc-clustering
 








Previously Un-prioritized FeaturesDesignCoreNon-core4.0Use Cases

Admin UI



x(tick)


Expand
titleAdmin UI Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-admin-ui"
labelsuc-admin-ui


Content API
x
(tick)


Expand
titleContent API Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-content-api"
labelsuc-content-api


Identifiers
x
(tick)


Expand
titleIdentifier Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-identifiers"
labelsuc-identifiers


Large-Scale Content
x
(warning)


Expand
titleLarge-Scale Content Use Cases

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "uc-scale-content"
labelsuc-scale-content