Document information about the current solution

Signed-off-by: Akashdeep Dhar <akashdeep.dhar@gmail.com>
This commit is contained in:
Akashdeep Dhar 2023-05-16 15:37:19 +05:30
parent 15f9e26793
commit 5af1b613c5
2 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,61 @@
.. _creation_fail:
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.
Internal reasons
----
The existing solution does not work anymore because of the following reasons
pertaining to the system itself.
1. 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.
2. 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.
3. 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.
External reasons
----
An new and improved solution is made necessary because of the following reasons
pertaining to the external entities.
1. 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.

View file

@ -97,5 +97,6 @@ Index
creation_workflow
creation_gram
creation_fail
solution_workflow
proposed_technologies