Why does the existing solution not work?
The existing solution does not work anymore and necessitates the need of a new solution because of the following reasons.
The existing solution does not work anymore because of the following reasons pertaining to the system itself.
Retrieval of a filtered list of human-only usernames from FASJSON service is a performance intensive process and time consuming process both at the serving and the receiving end. Having the service unit to fetch the list of all usernames not only delivers penalty to the performance of the service unit itself but also harms the experience of those using FASJSON service at their ends. This can lead to severely unintended consequences such as causing an unplanned downtime at the serving end, hogging up the reources due to the contigious nature of the request and deteriorating the quality of service for other FASJSON users.
Obtaining a moderated list of active human-only usernames from Datagrepper is also a performance intensive and time consuming process both at the serving and the receiving end. While running this service unit does not deteriorate the quality of service of Datagrepper for other users, the process is very slow as the Datagrepper service has to further interact with the Datanommer database in order to be able to compute the request and fetch the requested information elements. As a consequence, the service unit runtime is very long and can be incredibly dependent on the network performance of the client machine.
Having too many entities in the system not only makes it complicated but it also brings in the added risks of failure and cost in time and effort required to connect these entities with each other in the form of processes. For instance, the service unit for fetching all the usernames from FASJSON takes more than 90-120 minutes in one run and that for fetching all the active usernames from Datagrepper takes more than 330-360 minutes in one run. This severely restricts the opportunities for development of new features and quality-of-life updates as the testing workflow could end up easily taking a lot of time and resources.
An new and improved solution is made necessary because of the following reasons pertaining to the external entities.
In the wake of increased requirements from the stakeholders, the scope of the tool widened drastically to a point that the existing solution could not be extended to address the newer needs. While the design ideas and the processes could be followed from the existing solution, the improved solution was required to be developed to ensure it could handle larger data elements, compute them to find out statistics about human-only users, amount for multiple services that publish messages on the Fedora Messaging bus and generate contribution statistics effectively. Therefore, an initiative was proposed to better facilitate these needs.