Since its first release, FRED has come a long way and has changed significantly. From a relatively small original project, over time it has grown to include modules related to the registry and the time has come for it to get a more significant reconstruction. There have also been shifts in the way the interface is designed, in the project management, as well as technological changes. The original method with a distinctive interface for each client gave way to more general and smaller interfaces, which each client can combine according to their needs. Similarly, we are moving towards modular source code architecture and last but not least, we are replacing Corba technology with gRPC. Another significant disadvantage for the large system is the narrow and poorly defined interdependence of individual parts, which slows down its response to new queries.
Modularity affects not only the services themselves, but also their data storage. For many years, registry data have been divided into two databases, the registry itself and the log database. However, the registry database itself already takes up 100 GB and its partitioning would greatly facilitate its maintenance. One of the largest parts is the news archive, which takes up about a third of its size.
We started changes in architecture already in 2018 with the establishment of a new administration interface Ferda (all-around craftsman). Together with the introduction of this interface, we have started a gradual rewriting of registry services. Ferda thus works exclusively with gRPC services, each of which manages just one logical unit.
A motivation of this year’s changes was primarily to replace the outdated pyfred project, which still uses Python 2.7. Due to its condition, we decided to cease its maintenance and replace it with completely new projects to replace its services. The biggest item were the messaging modules. In addition to the separation, this will provide long-missing features, especially unification of templates for different types of messages, template management, more options for archiving, and facilitated integration of custom extensions. Other new features include new modules for zone generation and logging, a module for generating statistics is also being developed. Automatic DNS key management is also undergoing a significant change. This will allow scanning from multiple locations, among other things.
Overview of changes in FRED architecture (new modules in green, replaced ones in red):