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
Info

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

...

b1,3,4,6,7,9


Section


Column


Advanced Tables - Table Plus
enableSortingfalse
Beta 4.0 Beta


Currently Supported FeaturesDesignCoreNon-core
Alpha
4.0Use Cases
AuthN/Zdesign
 

x
 
(tick)


Expand
titleAuthorization Use Cases

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


Backupdesignx
  b2,3

(tick)


Expand
titleBackup Use Cases

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


Clustering
 

x
 xb5,6,10

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

x
  b7,8

(warning)


Expand
titleContent Modeling Use Cases

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


Managed External Datastreams
  b2,4,6,7,8,10


x
 
(tick)


Expand
titleExternal Storage Use Cases

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


Store/Deliver Large Filesdesignx
  b2,4,6,7,8,10

(tick)


Expand
titleLarge Files Use Cases

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


Search

design
 

x
 b4,8,9
(tick)


Expand
titleSearch Use Cases

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


Transactions
  

x
 x

(tick)


Expand
titleTransactions Use Cases

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


Triplestoredesign
 

x
 
(tick)
b2,4


Expand
titleTriplestore Use Cases

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


Versioning
 b7,8,9

x
  

(tick)


Expand
titleVersioning Use Cases

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


Non-Functional: Easy Deployment
      
     



(warning)


Expand
titlePerformance Use Cases

Content by Label
showLabelsfalse
showSpacefalse

labels

cqllabel = "uc-performance"

       

labelsuc-performance








Post-4.0 Priority 1 FeaturesDesignCoreNon-core
Alpha
4.0
Beta
 

x
 
b3,4,5


Expand
titleF3 to F4 Upgrade Use Cases

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

Asynchronous storage API


Audit Servicedesignx
 
  



Expand
title
Async Storage
Audit Service Use Cases

Content by Label
showLabelsfalse
showSpacefalse

labels

cqllabel = "uc-

storage-async Batch Operations x xb9

audit"
labelsuc-audit


Managed External Datastreams - Indexing

x

Asynchronous storage APIdesignx


Expand
title
Batch
Async Storage Use Cases

Content by Label
showLabelsfalse
showSpacefalse

labels

cqllabel = "uc-

batch 

 

 

Content Modeling - Services and Validation      Expand
titleContent Modeling (extended) Use Cases
Content by LabelshowLabelsfalseshowSpacefalse

storage-async"

labelsuc-

content

storage-

modeling-extPolicy-driven Storage design x x
b1,2



Expand
title
Policy-Driven
Asynchronous Storage Use Cases

Content by Label
showLabelsfalse
showSpacefalse

labels

cqllabel = "uc-storage-

policy

async"

Relationships API x    Self-healing Storage  xx         Non-Functional: Performance - Clustered    

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
title
Clustering Performance
Batch Use Cases

Content by Label
showLabelsfalse
showSpacefalse

labels

cqllabel = "uc-

clustering

batch"

        Post-4.0 Priority 2 FeaturesDesignCoreNon-coreAlpha  Asynchronous storage Implementation x   

labelsuc-batch
 



CMIS

x

Content Modeling - Services and Validation




Expand
titleContent Modeling (extended)
ExpandtitleAsynchronous Storage
Use Cases

Content by Label
showLabelsfalse
showSpacefalse

labelsCMIS  xx  

cqllabel = "uc-

storage-async

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
 b9 
 

x
 
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
   



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

ORCID Support  x   WebDAV  xx        Beta

 








Previously Un-prioritized FeaturesDesignCoreNon-core
Alpha
4.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

labels

cqllabel = "uc-scale-content

IntegrationsCoreNon-coreAlphaUse Cases
Hydra Integration xx
Expand
titleHydra Use Cases

Content by Label
showLabelsfalse
showSpacefalse
labelsuc-hydra

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.

...

"
labelsuc-scale-content