-
Notifications
You must be signed in to change notification settings - Fork 38
Roadmap
From the inception of the project pyFF has always been a traditional monolithic web application. With the involvement of pyFF in the RA21 project and the interest to bringing the pyFF discovery architecture to a wider audience in the form of a general discovery service, it makes sense to re-think the pyFF software design a bit.
Modern web applications almost invariably follow some version of the following architecture:
- backend business logic is implemented by a RESTful API - sometimes using a microservice architecture
- frontend presentation logic is implemented by (sometimes single-page) HTML5 applications using JavaScript to call the backend API
Starting with 0.11 pyFF is embarking on a process to transform from a monolithic to a modern web application optimized for container-based packaging. At the same time pyFF will transition to semantic versioning starting with the release of 1.0.0 which will mark the end of the transition and the beginning of the new face of pyFF.
- The 2.0.0 release of pyFF will most likely not be shipped with any HTML frontend. Instead pyFF will come with a sample docker compose file that will launch the pyFF core along with a frontend management and discovery service application.
We are currently in "post-1.0.0" where most of the work involves cleaning up and fixing issues related to pyff 1.0.0. This will result in a 1.1.0 release in the near future. After that all frontend code (old discovery, management web app) will be removed for the release of pyff 2.0.0
There are several ideas for pyFF that have been languishing in part because of the complexity of the current software architecture:
- work on reducing memory footprint
- pubsub for notifications between MDQ servers
- more instrumentation & monitoring
- adaptive aggregation for large-scale deployments
- elastic search
- management APIs for integrated editing of local metadata
- OIDC
- generating offline MDQ directory structures (cf scripts/mirror-mdq.sh)