This sprint was the opportunity to jump in 2 new major topics for the future of GeoNetwork.
Half of the team concentrated on microservices. With the help of Gabriel Roldan who designed the GeoServer architecture based on Spring Cloud (see https://github.com/camptocamp/geoserver-microservices), Jose, Christophe and Francois managed to:
Move the search proxy from GeoNetwork 4 to a dedicated service which does not take into account yet user privileges
Validated the option that Spring Cloud Event bus (using RabbitMQ or Kafka) can be used to communicate between GeoNetwork4, microservices and Camel routes
A microservice dedicated to indexing has been designed in order to focus on performances - based on events, streaming, multithread, XSLT3 and bulk operations (see https://github.com/geonetwork/geonetwork-microservices/blob/main/modules/services/indexing/README.md). The indexing chain has been set up using Apache Camel project providing metrics using micrometer library to monitor the progress of tasks. The approach sounds efficient and reliable.
A gateway application can take care of routing incoming requests to both GeoNetwork4 and microservices. As things progress, the routes can be adapted to redirect API calls from the legacy app to the corresponding microservices.
Authentication using Oauth and JWT was analyzed but is a challenging tasks. We have to be able to setup authentication at the gateway level, share user information across microservices using JWT and also be in capacity to authenticate in GeoNetwork4 at the same time. This topics needs more investigation.
An OGC API Records server was generated from the OpenAPI specification provided by https://github.com/opengeospatial/ogcapi-records/. The specification is a draft and we are checking which the standardization team which documents is best to use and how to help on the standardization efforts.
A number of issues/questions have been added to the roadmap including some about templating which interacts with the GeoNetwork UI project which was the 2nd topic.